API函数Word格式.docx
《API函数Word格式.docx》由会员分享,可在线阅读,更多相关《API函数Word格式.docx(101页珍藏版)》请在冰豆网上搜索。
如菜单占用两行以上的空间,则函数不能正确计算大小。
如程序使用了多行标题,则应使用GetSystemMetrics
AnyPopup
DeclareFunctionAnyPopupLib"
AnyPopup"
()AsLong
判断屏幕上是否存在任何弹出式窗口
Long,如存在弹出式菜单,则返回TRUE(非零)
对该函数来说,弹出式菜单包含所有可见的包容顶级窗口,无论弹出式还是重叠窗口
ArrangeIconicWindows
DeclareFunctionArrangeIconicWindowsLib"
ArrangeIconicWindows"
(ByValhwndAsLong)AsLong
排列一个父窗口的最小化子窗口(在vb里使用:
用于在桌面排列图标,用GetDesktopWindow函数获得桌面窗口的一个句柄)
Long,图标行的高度;
如失败,则返回零。
hwnd
Long,父窗口的句柄
也可将该函数用于包含了图标化子窗口的的定制控件
AttachThreadInput
DeclareFunctionAttachThreadInputLib"
AttachThreadInput"
(ByValidAttachAsLong,ByValidAttachToAsLong,ByValfAttachAsLong)AsLong
通常,系统内的每个线程都有自己的输入队列。
本函数(既“连接线程输入函数”)允许线程和进程共享输入队列。
连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态以及输入队列状态都会进入共享状态
Long,非零表示成功,零表示失败,会设置会GetLastError
idAttach
Long,欲连接线程的标识符(ID)
idAttachTo
Long,与idAttach线程连接的另一个线程的标识符
fAttach
Long,TRUE(非零)连接,FALSE撤消连接
调用这个函数时,会重设键盘状态
BeginDeferWindowPos
DeclareFunctionBeginDeferWindowPosLib"
BeginDeferWindowPos"
(ByValnNumWindowsAsLong)AsLong
启动构建一系列新窗口位置的过程(以便同时更新)。
该函数会向一个内部结果返回一个句柄,这个结构容纳了与窗口位置有关的信息。
随后,该结构会由对DeferWindowPos函数的调用填充。
准备好更新所有窗口位置以后,对EndDeferWindowPos的一个调用可同时更新结构内所有窗口的位置
Long,内部结构的句柄。
零表示失败
nNumWindows
Long,在结构中欲为其分配空间的初始窗口数量。
在每次DeferWindowPos调用期间结构的大小会根据情况自动调节
BringWindowToTop
DeclareFunctionBringWindowToTopLib"
BringWindowToTop"
将指定的窗口带至窗口列表顶部。
倘若它部分或全部隐藏于其他窗口下面,则将隐藏的部分完全显示出来。
该函数也对弹出式窗口、顶级窗口以及MDI子窗口产生作用
Long,非零表示成功,零表示失败。
Long,欲带至顶部的那个窗口的句柄
这个函数也许能随同子窗口使用。
函数对一个特定的输入线程来说是“本地的”——换言之,倘若某窗口并非前台应用程序的一部分,那么一旦随同该窗口调用本函数,仍会将窗口带至它自己那个应用程序的窗口列表顶部。
但是,不会同时使那个应用成为前台应用程序。
这意味着在调用了本函数后,窗口仍会保持隐藏状态
CascadeWindows,CascadeWindowsBynum
DeclareFunctionCascadeWindows%Lib"
(ByValhwndParentAsLong,ByValwHowAsLong,lpRectAsRECT,ByValcKidsAsLong,lpKidsAsLong)
DeclareFunctionCascadeWindowsBynum%Lib"
CascadeWindows"
(ByValhwndParentAsLong,ByValwHowAsLong,ByVallpRectAsLong,ByValcKidsAsLong,ByVallpKidsAsLong)
以层叠方式排列窗口(在vb里使用:
位于顶部或被所有的窗口没有问题。
原文:
Noproblemfortoplevelwindowsorownedwindows.)
Integer,排列成功的窗口数量,零表示失败
hwndParent
Long,指定一个父窗口;
准备对它的子窗口进行排列。
用GetDesktopWindow函数获得顶级窗口的句柄
wHow
Long,MDITILE_SKIPDISABLED——不排列已被禁用的MDI子窗口
RECT,指定一个矩形,矩形区域中的窗口才会层叠处理。
可设为NULL,表示使用整个客户区
cKids
Long,在lpKids数组中指定的子窗口数量
lpKids
Long,子窗口列表中准备排列的第一个元素。
如传递NULL(注意将参数定义成ByVal)。
Long,则表示排列所有的子窗口(原文:
Long--Firstelementinlistofchildwindowstoarrange.PassNULL(besuretodefineparameterasByVal-Long,toarrangeallchildwindows.)
在正式的win32文档里,对这个函数的说明是不正确的。
这儿的参数建立在实际的win32C头文件基础上。
函数不能对诸如控件的子窗口产生——只对顶级窗口及MDI子有用。
注意在MDI窗体的情况下,指定的父窗口应是MDIClient窗口的句柄,不应是MDI窗体本身的窗口句柄。
可用api函数GetParent获得正确的句柄
ChildWindowFromPoint,ChildWindowFromPointEx
DeclareFunctionChildWindowFromPointLib"
ChildWindowFromPoint"
(ByValhWndAsLong,ByValxPointAsLong,ByValyPointAsLong)AsLong
DeclareFunctionChildWindowFromPointExLib"
ChildWindowFromPointEx"
(ByValhWndAsLong,ByValptAsPOINTAPI,ByValunAsLong)AsLong
返回父窗口中包含了指定点的第一个子窗口的句柄
Long,发现包含了指定点的第一个子窗口的句柄。
如未发现任何窗口,则返回hWnd(父窗口的句柄)。
如指定点位于父窗口外部,则返回零
hWnd
xPoint
Long,点的X坐标,以像素为单位
yPoint
Long,点的Y坐标,以像素为单位
pt
POINTAPI,点的坐标,以像素为单位
un
Long,(只适用于ChildWindowFromPointEx)控制对窗口的搜索。
参见下表
CWP_ALL
测试所有窗口
CWP_SKIPINVISIBLE
忽略不可见窗口
CWP_SKIPDISABLED
忽略已屏蔽的窗口
CWP_SKIPTRANSPARENT
忽略透明窗口
ClientToScreen
DeclareFunctionClientToScreenLib"
ClientToScreen"
(ByValhwndAsLong,lpPointAsPOINTAPI)AsLong
判断窗口内以客户区坐标表示的一个点的屏幕坐标
Long,非零表示成功,零表示失败
Long,判断客户区坐标时那个窗口的句柄
lpPoint
POINTAPI,用hwnd窗口的客户区坐标表示的点,这个参数会包含屏幕坐标系统中相同的点
CloseWindow
DeclareFunctionCloseWindowLib"
CloseWindow"
最小化指定的窗口。
窗口不会从内存中清除
Long,欲最小化的那个窗口的句柄
CopyRect
DeclareFunctionCopyRectLib"
CopyRect"
(lpDestRectAsRECT,lpSourceRectAsRECT)AsLong
将矩形的lpSourceRect内容复制给矩形lpDestRect
lpDestRect
RECT,目标矩形结构
lpSourceRect
RECT,源矩形
DeferWindowPos
DeclareFunctionDeferWindowPosLib"
DeferWindowPos"
(ByValhWinPosInfoAsLong,ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong
该函数为特定的窗口指定一个新窗口位置,并将其输入由BeginDeferWindowPos创建的结构,以便在EndDeferWindowPos函数执行期间更新
Long,返回一个新句柄,它指向的结构包含了位置更新信息。
这个句柄应在对DeferWindowPos的后续调用以及对EndDeferWindowPos的结束调用中用到。
如出错,则返回零值
hWinPosInfo
Long,由BeginDeferWindowPos为后续对DeferWindowPos的调用返回的句柄
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
DeclareFunctionDestroyWindowLib"
DestroyWindow"
破坏(即清除)指定的窗口以及它的所有子窗口(在vb里使用:
用处不大。
itisunlikelytobeofmuchuse.)
Long,欲清除的窗口的句柄
DrawAnimatedRects
DeclareFunctionDrawAnimatedRectsLib"
DrawAnimatedRects"
(ByValhwndAsLong,ByValidAniAsLong,lprcFromAsRect,lprcToAsRect)AsLong
在lprcFrom和lprcTo之间描绘一系列动态矩形
Long,要在其中描绘矩形的窗口。
如设为零,表示以桌面为背景
idAni
Long,windows95要设为0
lprcFrom
Rect,原始矩形
lprcTo
Rect,目标矩形
我的理解——这个函数用于在窗口缩放时产生动画效果
EnableWindow
DeclareFunctionEnableWindowLib"
EnableWindow"
(ByValhwndAsLong,ByValfEnableAsLong)AsLong
在指定的窗口里允许或禁止所有鼠标及键盘输入(在vb里使用:
在vb窗体和控件中使用Enabled属性)
Long,窗口句柄
fEnable
Long,非零允许窗口,零禁止
EndDeferWindowPos
DeclareFunctionEndDeferWindowPosLib"
EndDeferWindowPos"
(ByValhWinPosInfoAsLong)AsLong
同时更新DeferWindowPos调用时指定的所有窗口的位置及状态
Long,由对DeferWindowPos最近一次调用返回的结构句柄
EnumChildWindows
DeclareFunctionEnumChildWindowsLib"
EnumChildWindows"
(ByValhWndParentAsLong,ByVallpEnumFuncAsLong,ByVallParamAsLong)AsLong
为指定的父窗口枚举子窗口
hWndParent
Long,欲枚举子窗口的父窗口的句柄
lpEnumFunc
Long,为每个子窗口调用的函数的指针。
用AddressOf运算符获得函数在一个标准模块中的地址
lParam
Long,在枚举期间,传递给dwcbkd32.ocx定制控件之EnumWindows事件的值。
这个值的含义是由程序员规定的。
(原文:
ValuethatispassedtotheEnumWindowseventofthedwcbkd32.ocxcustomcontrolduringenumeration.Themeaningofthisvalueisdefinedbytheprogrammer.)
在vb4下要求dwcbkd32.ocx定制控件。
子窗口下属的子窗口也可由这个函数枚举
EnumThreadWindows
DeclareFunctionEnumThreadWindowsLib"
EnumThreadWindows"
(ByValdwThreadIdAsLong,ByVallpfnAsLong,ByVallParamAsLong)AsLong
枚举与指定任务相关的窗口
dwThreadId
Long,某线程的标识符,它的窗口将被枚举
lpfn
Long,指向一个函数的指针,要求为每个子窗口都调用这个函数。
用AddressOf运算符获得函数在标准模式下的地址
Long,在枚举期间,传递给dwcbkd32d.ocx定制控件之EnumWindows事件的值。
这个值的含义是由程序员规定的
子窗口下属的其他子窗口也可由这个函数枚举
EnumWindows
DeclareFunctionEnumWindows&
Lib"
(ByVallpEnumFuncAsLong,ByVallParamAsLong)
枚举窗口列表中的所有父窗口(顶级和被所有窗口)
Long,指向为每个子窗口都调用的一个函数的指针。
我的理解——在随vb5同时提供的api32.txt文件中,找不到这个函数
EqualRect
DeclareFunctionEqualRectLib"
EqualRect"
(lpRect1AsRECT,lpRect2AsRECT)AsLong
判断两个矩形结构是否相同
lpRect1
RECT,要比较的矩形
lpRect2
FindWindow
DeclareFunctionFindWindowLib"
FindWindowA"
(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLong
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:
FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;
该类是所有运行中vb执行程序的一部分。
获得句柄后,可用api函数GetWindowText取得这个窗口的名称;
该名也是应用程序的标题)
Long,找到窗口的句柄。
如未找到相符窗口,则返回零。
lpClassName
String,指向包含了窗口类名的空中止(C语言)字串的指针;
或设为零,表示接收任何类
lpWindowName
String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;
或设为零,表示接收任