自编的VB6.0调用WinAPI的模块(整合了许多函数和过程)

自编的VB6.0调用WinAPI的模块(整合了许多函数和过程)
通过我的多次实践,在编写了许多软件的基础上,我自编和整合了许多较实用的函数。
注意,以下代码前半部分为WinAPI函数的声明,后半部分为自编函数和过程。
Option Explicit On
'-----------------------------------------------------------------------------------
'       FileName: modCommon.bas
'       Function: 通用的变量、常量声明,自编函数、过程以及API函数声明
'-----------------------------------------------------------------------------------
 
 
'-----------------------     常量声明    -----------------------
 
Public Const User_Pi = 3.1415926            'PI
Public Const User_Golden = 0.618            ' 黄金分割比例
 
 
 
'-----------------------     WindowAPI 函数声明    -----------------------
 
' 设置一个窗口的位置和状态
Public 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
'{
'hwnd   欲定位的窗口
'hWndInsertAfter    窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面
Public Const HWND_BOTTOM = 1             ' 将窗口置于窗口列表底部
Public Const HWND_TOP = 0                ' 将窗口置于Z序列的顶部;Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序
Public Const HWND_TOPMOST = -1           ' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Public Const HWND_NOTOPMOST = -2         ' 将窗口置于列表顶部,并位于任何最顶部窗口的后面
'x,y       窗口新的x,y坐标
'cx,cy     指定新的窗口宽度和高度
'wFlags    包含了旗标的一个整数,是下列之一,返回值Long,非零表示成功,零表示失败
Public Const SWP_DRAWFRAME = &H20                   ' 围绕窗口画一个框
Public Const SWP_HIDEWINDOW = &H80                  ' 隐藏窗口
Public Const SWP_NOACTIVATE = &H10                  ' 不激活窗口
Public Const SWP_NOMOVE = &H2                       ' 保持当前位置(x和y设定将被忽略)
Public Const SWP_NOREDRAW = &H8                     ' 窗口不自动重画
Public Const SWP_NOSIZE = &H1                       ' 保持当前大小(cx和cy会被忽略)
Public Const SWP_NOZORDER = &H4                     ' 保持窗口在列表的当前位置(hWndInsertAfter将被忽略)
Public Const SWP_SHOWWINDOW = &H40                  ' 显示窗口
Public Const SWP_FRAMECHANGED = &H20                ' 强迫一条WM_NCCALCSIZE消息进入窗口,即使窗口的大小没有改变
'}
 
 
 
' 从指定窗口的结构中取得信息
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
'{
'hwnd           欲为其获取信息的窗口的句柄
'nIndex         欲取回的信息,可以是下述任何一个常数:
Public Const GWL_EXSTYLE = (-20)        ' 扩展窗口样式
Public Const GWL_STYLE = (-16)          ' 窗口样式
Public Const GWL_WNDPROC = (-4)         ' 该窗口的窗口函数的地址
Public Const GWL_HINSTANCE = (-6)       ' 拥有窗口的实例的句柄
Public Const GWL_HWNDPARENT = (-8)      ' 该窗口之父的句柄?不要用SetWindowWord来改变这个值
Public Const GWL_ID = (-12)             ' 对话框中一个子窗口的标识符
Public Const GWL_USERDATA = (-21)       ' 含义由应用程序规定
Public Const DWL_DLGPROC = 4            ' 这个窗口的对话框函数地址
Public Const DWL_MSGRESULT = 0          ' 在对话框函数中处理的一条消息返回的值
Public Const DWL_USER = 8               ' 含义由应用程序规定
Public Const WS_MINIMIZEBOX = &H20000   ' 最小化按钮
Public Const WS_MAXIMIZEBOX = &H10000   ' 最大化按钮
'}
 
 
 
' 在窗口结构中为指定的窗口设置信息
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'{
' 返回值Long,指定数据的前一个值
'hwnd       欲为其取得信息的窗口的句柄
'nIndex     请参考GetWindowLong函数的nIndex参数的说明
'dwNewLong  由nIndex指定的窗口信息的新值
'}
 
 
' 设置窗体的层次属性
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
'{
'hwnd       窗口手柄。当使用CreateWindowEx函数创建窗口时,窗口由WS_EX_LAYERED指定的值创建;
'           或者窗口已经创建后,由SetWindowLong根据WS_EX_LAYERED指定的值改变。
Public Const WS_EX_LAYERED = &H80000
'crKey      指定颜色值。指向一个COLOR值,该值指定一个透明颜色值,当创建窗口时,窗口将使用该值。
'bAlpha     混合函数值该值。用于描述窗口的不透明度。当bAlpha 值为时,窗口完全透明,
'           当bAlpha值为时,窗口完全不透明。
'dwFlags    动作。这个参数可以取一个或多个值。用它我们可以创建一个不规则的窗体。
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1
'}
 
 
 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值