- 浏览: 176120 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xiangyufangai:
很好很强大膜拜中哈哈!!
VB 两个字符串处理函数(类似Left/Mid/Right/Split的结合) -
hellohank:
这个……叫摘要算法,不叫加密算法~
Java实现的加密工具类(支持MD5和SHA) -
NIUCH1029291561:
接口有问题奥
网银在线支付接口和应用 -
yeuego:
能幫你就行了
MySQL索引分析 -
ForgiDaved:
很给力的介绍。记得前段时间给一个系统加功能,设计的表没有 ...
MySQL索引分析
VB提供了API函数SetWindowLong和GetWindowLong,可以让我们很容易取得对窗口的操作;通过对窗口属性的操作,可以更改窗口的显示风格。有些看来是正常情况下无法实现的窗口,现在你可以很容易的实现。只要你想到,更多希奇古怪的你也能做到。快试试下面的例子吧。
'以下例子中可能用到的API声明和常量、变量声明
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOMOVE = &H2
Private Const SWP_DRAWFRAME = &H20
Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME = &H40000
Private Const WS_DLGFRAME = &H400000
Private Const WS_POPUP = &H80000000
Private Const WS_CAPTION = &HC00000
Private Const WS_SYSMENU = &H80000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZE = &H20000000
Private Const WS_MAXIMIZE = &H1000000
--------------------------------------------------------------------------------
'例子一:任何一个控件(只要有窗口,这是我们的前提,下同),你可以在运行时随便更改它的大小。
Private Sub ControlSize(ControlName As Control, SetTrue As Boolean)
Dim dwStyle As Long
dwStyle = GetWindowLong(ControlName.hwnd, GWL_STYLE)
If SetTrue Then
dwStyle = dwStyle Or WS_THICKFRAME
Else
dwStyle = dwStyle - WS_THICKFRAME
End If
dwStyle = SetWindowLong(ControlName.hwnd, GWL_STYLE, dwStyle)
SetWindowPos ControlName.hwnd, ControlName.Parent.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
'用法:ControlSize picture1,true;设置第二个参数为False取消这种设置,下同
--------------------------------------------------------------------------------
'例子二:任何一个控件,我们都可以控制其显示风格为对话框的风格。
Private Sub ControlDialog(ControlName As Control, SetTrue As Boolean)
Dim dwStyle As Long
dwStyle = GetWindowLong(ControlName.hwnd, GWL_STYLE)
If SetTrue Then
dwStyle = dwStyle Or WS_DLGFRAME
Else
dwStyle = dwStyle - WS_DLGFRAME
End If
dwStyle = SetWindowLong(ControlName.hwnd, GWL_STYLE, dwStyle)
SetWindowPos ControlName.hwnd, ControlName.Parent.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
'用法:ControlSize picture1,true
--------------------------------------------------------------------------------
'例子三:任何一个控件,我们都可以控制其显示风格为模式对话框的风格
Private Sub ControlModal(ControlName As Control, SetTrue As Boolean)
Dim dwStyle As Long
dwStyle = GetWindowLong(ControlName.hwnd, GWL_STYLE)
If SetTrue Then
dwStyle = dwStyle Or WS_POPUP
Else
dwStyle = dwStyle - WS_POPUP
End If
dwStyle = SetWindowLong(ControlName.hwnd, GWL_STYLE, dwStyle)
SetWindowPos ControlName.hwnd, ControlName.Parent.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
'用法:ControlModal Picture1,true
--------------------------------------------------------------------------------
'例子四:任何一个控件,我们都可以给它加上标题栏,通过拖动标题栏,可以实现控件的运行时移动。
Private Sub ControlCaption(ControlName As Control, SetTrue As Boolean) Dim dwStyle As Long
dwStyle = GetWindowLong(ControlName.hwnd, GWL_STYLE)
If SetTrue Then
dwStyle = dwStyle Or WS_CAPTION
Else
dwStyle = dwStyle - WS_CAPTION
End If
dwStyle = SetWindowLong(ControlName.hwnd, GWL_STYLE, dwStyle)
SetWindowPos ControlName.hwnd, ControlName.Parent.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
'用法:ControlCaption picture1,true
--------------------------------------------------------------------------------
'例子五:任何一个控件,我们都可以给它加上ControlBox(所谓ControlBox,就是窗体的图标+最小化+最大化+关闭按钮)。
Private Sub ControlSysMenu(ControlName As Control, SetTrue As Boolean)
Dim dwStyle As Long
dwStyle = GetWindowLong(ControlName.hwnd, GWL_STYLE)
If SetTrue Then
dwStyle = dwStyle Or WS_SYSMENU
Else
dwStyle = dwStyle - WS_SYSMENU
End If
dwStyle = SetWindowLong(ControlName.hwnd, GWL_STYLE, dwStyle)
SetWindowPos ControlName.hwnd, ControlName.Parent.hwnd, 0, 0, 0, 0, SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_DRAWFRAME
End Sub
'用法:ControlCaption picture1,true:ControlSysmenu picture1,true
发表评论
-
vb 启动外部程序并且模拟鼠标点击
2011-03-09 13:28 1176Imports System.Runtime.InteropS ... -
VB 列出SQL数据库中所有表及字段信息
2011-03-09 13:24 1163程序思想:用Select name From sysobje ... -
VB 纯代码实现Timer控件的功能
2011-03-09 13:23 1376本博客有一篇类似的文章《VB 中运用 TimeSetEvent ... -
VB 控制音量
2011-03-09 13:22 1243'按钮一是音量增加,按钮二是音量减少,按钮三是静音切换. ... -
拦截 VB TextBox 双击消息
2011-03-09 13:22 955我们都知道在VB中TextBox默认是没有双击消息过程的(也就 ... -
VB 获取/设置屏幕分辨率
2011-03-09 13:21 1126Option ExplicitPrivate Decla ... -
VB 将数据快速导入EXCEL
2011-03-09 13:21 1048Public Function ToExcel()On ... -
VB 建立快捷方式
2011-03-09 13:20 791Private Declare Function fCr ... -
VB 获取快捷方式原文件路径
2011-03-09 13:20 933'此方法不需要引用IShellLink.Private ... -
VB 的一组字符串转换函数
2011-03-09 13:20 796Public Function chrConvert(s ... -
VB 在浏览目录时指定初始目录
2011-03-09 13:19 1084'VB也可以使用CallBack,下面是一个例子: '先 ... -
VB 获得鼠标滚轮的事件
2011-03-09 13:18 1007'窗体代码Private Sub Form_Load() ... -
VB 比较两组字符串
2011-03-09 13:18 1300【方法一】 StrComp(string1, Stri ... -
VB 用API下载文件实例
2011-03-09 13:17 807'########################### ... -
VB 实现屏幕右下角浮出式消息窗口,透明淡出效果。
2011-03-09 13:16 1006'任务栏高度[此部分相关代码转载自 枕善居]Privat ... -
VB Filter 函数用法
2011-03-09 13:16 1965例子1:Dim aa(10) As StringDim bbD ... -
VB 在EXPLORER进程崩溃之后重建托盘图标
2011-03-09 13:15 856重点为:向系统注册“TaskbarCreated”消息 ... -
Shell 调用程序后等待该程序结束后返回继续
2011-03-09 13:15 1235方法1: Private Declare Functi ... -
VB 最简单的WAV声音或音乐文件播放的代码
2011-03-09 13:14 1384'最简单的WAV声音或音乐文件播放的代码'API声明Pr ... -
VB 实现保存 Direct3D 游戏截图
2011-03-09 13:13 1516Written By Microsoft MVP: Eric ...
相关推荐
### VB窗口处理概述 #### API函数介绍 - **SetWindowLong**:此函数用于设置指定窗口的一个或多个长期存储属性值。 - **GetWindowLong**:此函数用于检索指定窗口的一个或多个长期存储属性值。 这两个API函数是...
在VB6(Visual Basic 6)编程环境中,"嵌入窗口_窗口处理"涉及一系列用于控制和操作Windows应用程序窗口的技术。这些技术可以帮助开发者实现高级功能,例如...通过这些文件,开发者可以学习并实践VB6中的窗口处理技巧。
标签"vb句柄获取窗口"进一步强调了VB编程中处理窗口句柄的能力。通过掌握这个技能,开发者能够实现更多高级的系统级操作,比如控制其他应用程序的窗口,或者与已存在的窗口进行交互。 综上所述,了解并熟练运用VB...
根据提供的文件信息,本文将详细解析与VB编程中窗口处理相关的高级技巧,特别是涉及窗口样式的修改、调整等操作。 ### 一、引言 在Visual Basic (简称VB)编程中,窗口处理是一项非常重要的技能。它涉及到如何创建...
学习和分析这些源码,可以帮助开发者更深入地理解VB窗口设计的技巧,以及如何结合API函数和VB内置功能来扩展窗口的表现力。这些源代码不仅可以作为参考,还可以直接应用于实际项目,提升软件的用户体验。 总之,VB...
在VB(Visual Basic)编程中,多窗口操作和相互调用是常见的应用场景,尤其是在开发具有多个界面或工作空间的桌面应用程序时。以下是对这个主题的详细讲解。 首先,我们需要理解VB中的窗口对象。在VB中,窗口通常指...
在这个"一个趣味的VB图形窗口的实现实例"中,开发者通过巧妙地利用图片框(PictureBox)控件,实现了像素级别的窗口定制,并能够动态调整窗口大小以适应图片,最终创建了一个不规则形状的窗口。以下是对这个实例的...
通过分析这个项目,初学者能深入理解VB的窗体设计和事件处理机制,而经验丰富的开发者则可以借鉴其中的设计模式和技巧,提升自己的编程技能。此外,由于VB的广泛使用和兼容性,这样的源代码也对学习.NET框架和其他...
总的来说,VB实现透明窗口边框涉及了API调用、窗口样式管理、图像处理等多个方面,需要一定的编程技巧和对Windows操作系统的理解。通过学习和实践,开发者可以创造出具有独特视觉效果的应用程序。
在本实例中,我们关注的是“超棒的VB6.0程序窗口皮肤实例”,这是一份源代码,展示了如何为VB6.0应用程序设计自定义的窗口皮肤,以及添加功能丰富的菜单。 首先,让我们理解窗口皮肤的概念。窗口皮肤是指改变应用...
综上所述,这个VB源码项目是一个关于窗口操作和用户交互的实践案例,它涵盖了Windows编程的一些核心概念,如API调用、消息处理和事件驱动编程,同时也涉及到了提高软件用户界面友好性的技巧。对于学习VB和Windows...
DIPvbNet可能包含了实现这些功能的源代码,通过学习和理解这些代码,开发者可以掌握图像处理的基本技巧,并在此基础上进行更复杂的图像分析和处理。对于学习和实践图像处理的VB程序员来说,这是一个宝贵的资源。
本篇文章将深入解析如何在VB中实现窗口的重复打开,并讨论其背后的逻辑与技巧。 ### VB中的窗口管理 在VB中,窗口通常通过Form类来创建和管理。每个Form对象代表一个可视化的窗口,开发者可以通过设置其属性和编写...
总之,"16种VB关闭窗口的特效演示及代码"资源是一个很好的学习材料,可以帮助开发者掌握VB中创建动态效果的技巧,提升编程技能。通过深入理解和实践,可以为自己的VB应用程序创造出更多独特且引人注目的用户体验。
同时,为了提高代码的稳定性和可维护性,还需注意错误处理、日志记录、调试技巧等方面。 通过阅读《vb大漠找字以及后台鼠标点击详解.txt》文件,你应该能深入理解这些知识点,并掌握如何在VB2008环境中运用大漠插件...
在VB6.0中,创建一个具有透明效果的...然而,由于VB6.0的局限性,实现高级的透明特性可能需要更多的编程技巧和对底层Windows API的深入理解。在实践中,开发者通常会根据项目需求和性能考虑选择合适的透明实现方式。
在VB(Visual Basic)编程中,"VB仿QQ窗口靠边隐藏"是一个常见的用户界面(UI)设计技巧,它使得程序窗口能够模仿QQ聊天窗口的行为,即当窗口靠近屏幕边缘时,可以自动隐藏,鼠标经过时又会动态显示。这个功能可以...
在VB6.0(Visual Basic 6.0)中,开发者经常需要控制应用程序窗口在启动时或运行过程中在屏幕上的位置。这个“设置窗口在屏幕中的位置VB6.0源代码”提供了一种方法来实现这个功能。让我们深入探讨一下这个主题。 在...
通过学习和理解这些代码,你可以加深对VB和GDI+绘图的理解,并掌握屏幕抓取的实践技巧。记得运行程序并调试代码,以确保其在不同系统和环境下都能正常工作。 总结,VB实现抓屏功能主要涉及GDI+的使用,包括`Bitmap`...
在VB(Visual Basic)编程中,创建一个"关于...通过学习和实践这个炫酷的VB关于窗口,我们可以提升VB编程技巧,尤其是对用户界面和动态效果的处理能力。同时,也可以为自己的项目增添更多个性化元素,提高用户体验。