精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:控件与消息函数 第一页

主题:VB API:控件与消息函数 第一页
发信人: winsy(鹰派)
整理人: winsy(2003-03-07 16:08:16), 站内信件
AdjustWindowRect,AdjustWindowRectEx 

VB声明 
Declare Function AdjustWindowRect Lib "user32" Alias "AdjustWindowRect" (lpRect As RECT, ByVal dwStyle As Long, ByVal bMenu As Long) As Long
Declare Function AdjustWindowRectEx Lib "user32" Alias "AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByVal bMenu As Long, ByVal dwEsStyle As Long) As Long 
说明 
在给定一种窗口样式的前提下,计算获得目标客户区矩形所需的窗口大小 
返回值 
Long,如执行成功,则返回非零值;如失败,返回零值。会设置GetLastError 
参数表 
参数 类型及说明 
lpRect RECT,最初包含要求的客户区。由函数设为目标窗口矩形大小 
dwStyle Long,窗口样式 
bMenu Long,如窗口有菜单,则设为TRUE(非零) 
dwEsStyle Long,扩展窗口样式(只适用于AdjustWindowRectEx) 
注解 
在调用本函数前,先用GetWindowLong取得一个窗体的样式。如菜单占用两行以上的空间,则函数不能正确计算大小。如程序使用了多行标题,则应使用GetSystemMetrics 


AnyPopup 

VB声明 
Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long 
说明 
判断屏幕上是否存在任何弹出式窗口 
返回值 
Long,如存在弹出式菜单,则返回TRUE(非零) 
注解 
对该函数来说,弹出式菜单包含所有可见的包容顶级窗口,无论弹出式还是重叠窗口 


ArrangeIconicWindows 

VB声明 
Declare Function ArrangeIconicWindows Lib "user32" Alias "ArrangeIconicWindows" (ByVal hwnd As Long) As Long 
说明 
排列一个父窗口的最小化子窗口(在vb里使用:用于在桌面排列图标,用GetDesktopWindow函数获得桌面窗口的一个句柄) 
返回值 
Long,图标行的高度;如失败,则返回零。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,父窗口的句柄 
注解 
也可将该函数用于包含了图标化子窗口的的定制控件
 

AttachThreadInput 

VB声明 
Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long 
说明 
通常,系统内的每个线程都有自己的输入队列。本函数(既“连接线程输入函数”)允许线程和进程共享输入队列。连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态以及输入队列状态都会进入共享状态 
返回值 
Long,非零表示成功,零表示失败,会设置会GetLastError 
参数表 
参数 类型及说明 
idAttach Long,欲连接线程的标识符(ID) 
idAttachTo Long,与idAttach线程连接的另一个线程的标识符 
fAttach Long,TRUE(非零)连接,FALSE撤消连接 
注解 
调用这个函数时,会重设键盘状态
 

BeginDeferWindowPos 

VB声明 
Declare Function BeginDeferWindowPos Lib "user32" Alias "BeginDeferWindowPos" (ByVal nNumWindows As Long) As Long 
说明 
启动构建一系列新窗口位置的过程(以便同时更新)。该函数会向一个内部结果返回一个句柄,这个结构容纳了与窗口位置有关的信息。随后,该结构会由对DeferWindowPos函数的调用填充。准备好更新所有窗口位置以后,对EndDeferWindowPos的一个调用可同时更新结构内所有窗口的位置 
返回值 
Long,内部结构的句柄。零表示失败 
参数表 
参数 类型及说明 
nNumWindows Long,在结构中欲为其分配空间的初始窗口数量。在每次DeferWindowPos调用期间结构的大小会根据情况自动调节 


BringWindowToTop 

VB声明 
Declare Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As Long) As Long 
说明 
将指定的窗口带至窗口列表顶部。倘若它部分或全部隐藏于其他窗口下面,则将隐藏的部分完全显示出来。该函数也对弹出式窗口、顶级窗口以及MDI子窗口产生作用 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,欲带至顶部的那个窗口的句柄 
注解 
这个函数也许能随同子窗口使用。函数对一个特定的输入线程来说是“本地的”——换言之,倘若某窗口并非前台应用程序的一部分,那么一旦随同该窗口调用本函数,仍会将窗口带至它自己那个应用程序的窗口列表顶部。但是,不会同时使那个应用成为前台应用程序。这意味着在调用了本函数后,窗口仍会保持隐藏状态
 

CascadeWindows,CascadeWindowsBynum 

VB声明 
Declare Function CascadeWindows% Lib "user32" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As RECT, ByVal cKids As Long, lpKids As Long)
Declare Function CascadeWindowsBynum% Lib "user32" Alias "CascadeWindows" (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As Long, ByVal cKids As Long, ByVal lpKids As Long) 
说明 
以层叠方式排列窗口(在vb里使用:位于顶部或被所有的窗口没有问题。原文:No problem for top level windows or owned windows.) 
返回值 
Integer,排列成功的窗口数量,零表示失败 
参数表 
参数 类型及说明 
hwndParent Long,指定一个父窗口;准备对它的子窗口进行排列。用GetDesktopWindow函数获得顶级窗口的句柄 
wHow Long,MDITILE_SKIPDISABLED——不排列已被禁用的MDI子窗口 
lpRect RECT,指定一个矩形,矩形区域中的窗口才会层叠处理。可设为NULL,表示使用整个客户区 
cKids Long,在lpKids数组中指定的子窗口数量 
lpKids Long,子窗口列表中准备排列的第一个元素。如传递NULL(注意将参数定义成ByVal)。Long,则表示排列所有的子窗口(原文:Long--First element in list of child windows to arrange. Pass NULL (be sure to define parameter as ByVal - Long, to arrange all child windows.) 
注解 
在正式的win32文档里,对这个函数的说明是不正确的。这儿的参数建立在实际的win32 C 头文件基础上。函数不能对诸如控件的子窗口产生——只对顶级窗口及MDI子有用。注意在MDI窗体的情况下,指定的父窗口应是MDIClient窗口的句柄,不应是MDI窗体本身的窗口句柄。可用api函数GetParent获得正确的句柄
 

ChildWindowFromPoint,ChildWindowFromPointEx 

VB声明 
Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long
Declare Function ChildWindowFromPointEx Lib "user32" Alias "ChildWindowFromPointEx" (ByVal hWnd As Long, ByVal pt As POINTAPI, ByVal un As Long) As Long 
说明 
返回父窗口中包含了指定点的第一个子窗口的句柄 
返回值 
Long,发现包含了指定点的第一个子窗口的句柄。如未发现任何窗口,则返回hWnd(父窗口的句柄)。如指定点位于父窗口外部,则返回零 
参数表 
参数 类型及说明 
hWnd Long,父窗口的句柄 
xPoint Long,点的X坐标,以像素为单位 
yPoint Long,点的Y坐标,以像素为单位 
pt POINTAPI,点的坐标,以像素为单位 
un Long,(只适用于ChildWindowFromPointEx)控制对窗口的搜索。参见下表 
CWP_ALL 测试所有窗口 
CWP_SKIPINVISIBLE 忽略不可见窗口 
CWP_SKIPDISABLED 忽略已屏蔽的窗口 
CWP_SKIPTRANSPARENT  忽略透明窗口 

ClientToScreen 

VB声明 
Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long 
说明 
判断窗口内以客户区坐标表示的一个点的屏幕坐标 
返回值 
Long,非零表示成功,零表示失败 
参数表 
参数 类型及说明 
hwnd Long,判断客户区坐标时那个窗口的句柄 
lpPoint POINTAPI,用hwnd窗口的客户区坐标表示的点,这个参数会包含屏幕坐标系统中相同的点 

CloseWindow 

VB声明 
Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long 
说明 
最小化指定的窗口。窗口不会从内存中清除 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,欲最小化的那个窗口的句柄 

CopyRect 

VB声明 
Declare Function CopyRect Lib "user32" Alias "CopyRect" (lpDestRect As RECT, lpSourceRect As RECT) As Long 
说明 
将矩形的lpSourceRect内容复制给矩形lpDestRect 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpDestRect RECT,目标矩形结构 
lpSourceRect RECT,源矩形 

DeferWindowPos 

VB声明 
Declare Function DeferWindowPos Lib "user32" Alias "DeferWindowPos" (ByVal hWinPosInfo As Long, 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 
说明 
该函数为特定的窗口指定一个新窗口位置,并将其输入由BeginDeferWindowPos创建的结构,以便在EndDeferWindowPos函数执行期间更新 
返回值 
Long,返回一个新句柄,它指向的结构包含了位置更新信息。这个句柄应在对DeferWindowPos的后续调用以及对EndDeferWindowPos的结束调用中用到。如出错,则返回零值 
参数表 
参数 类型及说明 
hWinPosInfo Long,由BeginDeferWindowPos为后续对DeferWindowPos的调用返回的句柄 
hwnd Long,欲定位的窗口 
hWndInsertAfter Long,窗口句柄。在窗口列表中,窗口hwnd会排列于这个窗口后面。也可用下述值之一: 
HWND_BOTTOM 将窗口置于窗口列表底部 
HWND_TOP 将窗口置于Z序列顶部;Z序列是窗口针对分级结构中一个给定级别显示的顺序 
HWND_TOPMOST 将窗口置于列表顶部,位于任何最顶级窗口的前面(请参考WS_EX_TOPMOST样式位) 
HWND_NOTOPMOST 将窗口置于列表顶部,位于任何最顶级窗口的后面 
x Long,窗口新的x坐标。如hwnd是个子窗口,那么x用父窗口的客户区坐标表示 
y Long,窗口新的y坐标。如hwnd是个子窗口,那么y用父窗口的客户区坐标表示 
cx Long,指定新窗口宽度 
cy Long,指定新窗口高度 
wFlags Long,包含了旗标的一个整数,如下所示: 
SWP_DRAWFRAME 围绕窗口画一个框 
SWP_HIDEWINDOW 隐藏窗口 
SWP_NOACTIVATE 不激活窗口 
SWP_NOMOVE 保持当前位置(x和y设定将被忽略) 
SWP_NOREDRAW 窗口不自动重画 
SWP_NOSIZE 保持当前大小(cx和cy会被忽略) 
SWP_NOZORDER 保持在窗口列表的当前位置(hWndInsertAfter会被忽略) 
SWP_SHOWWINDOW 显示窗口 
SWP_NOOWNERZORDER 不改变Z序列的所有者 
SWP_NOSENDCHANGING 窗口不发出WM_WINDOWPOSCHANGING消息 
注解 
请参考对SetWindowPos函数的注解。同时参考BeginDeferWindowPos和EndDeferWindowPos
 

DestroyWindow 

VB声明 
Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long 
说明 
破坏(即清除)指定的窗口以及它的所有子窗口(在vb里使用:用处不大。原文:it is unlikely to be of much use.) 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,欲清除的窗口的句柄 


DrawAnimatedRects 

VB声明 
Declare Function DrawAnimatedRects Lib "user32" Alias "DrawAnimatedRects" (ByVal hwnd As Long, ByVal idAni As Long, lprcFrom As Rect, lprcTo As Rect) As Long 
说明 
在lprcFrom和lprcTo之间描绘一系列动态矩形 
返回值 
Long,非零表示成功,零表示失败 
参数表 
参数 类型及说明 
hwnd Long,要在其中描绘矩形的窗口。如设为零,表示以桌面为背景 
idAni Long,windows 95要设为0 
lprcFrom Rect,原始矩形 
lprcTo Rect,目标矩形 
注解 
我的理解——这个函数用于在窗口缩放时产生动画效果
 

EnableWindow 

VB声明 
Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long 
说明 
在指定的窗口里允许或禁止所有鼠标及键盘输入(在vb里使用:在vb窗体和控件中使用Enabled属性) 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,窗口句柄 
fEnable Long,非零允许窗口,零禁止 

EndDeferWindowPos 

VB声明 
Declare Function EndDeferWindowPos Lib "user32" Alias "EndDeferWindowPos" (ByVal hWinPosInfo As Long) As Long 
说明 
同时更新DeferWindowPos调用时指定的所有窗口的位置及状态 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hWinPosInfo Long,由对DeferWindowPos最近一次调用返回的结构句柄 

[关闭][返回]