一、窗口函数(Window)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
AdjustWindowRect
函数功能:该函数依据所需客户矩形的大小,计算需要的窗日矩形的大小。计算出的窗口矩形随后可以传递给CreateWindow函数,用于创建一个客户区所需大小的窗口。
函数原型:BOOL AdjustWindowRect(LPRECT lpRect ,DWORD dwStyle,BOOL bMENU);
参数:
lpRect:指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。函数返回时,该结构容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:指定将被计算尺寸的窗口的窗口风格。
bMenu:指示窗口是否有菜单。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。获取错误信息,参看GetLastError。
备注:客户矩形是指完全包含一个客户区域的最小矩形;窗日矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:Windows NT:3.1以上版本:Windows:95以上版本:Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
AdjustWindowRectEX
函数功能:该函数依据所需客户矩形大小,计算需要的窗口矩形的大小。计算出的窗口矩形随后可以传送给CreateWindowEx函数,用于创建一个客户区所需大小的窗口。
函数原型:BOOL AdjustWindowRectEX(LPRECT lpRect,DWORD dwStyte;BOOL bMenu;DWORD dwExStyle);
参数:
lpRect:指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。函数返回时,该结构包含容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:指定将被计算尺寸的窗口的窗口风格。
bMenu:指示窗口是否有菜单。
dwExStyle:指定将被计算尺寸的窗口的扩展窗口风格。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:客户矩形是指完全包含一个客户区域的最小矩形;窗口矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
AnimateWindow
函数功能:该函数能在显示与隐藏窗口时能产生特殊的效果。有两种类型的动画效果:滚动动画和滑动动画。
函数原型:BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);
参数:
hWnd:指定产生动画的窗口的句柄。
dwTime:指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒。
dwFags:指定动画类型。这个参数可以是一个或多个下列标志的组合。标志描述:
AW_SLIDE:使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
AW_ACTIVE:激活窗口。在使用了AW_HIDE标志后不要使用这个标志。
AW_BLEND:使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
AW_HIDE:隐藏窗口,缺省则显示窗口。
AW_CENTER:若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
AW_HOR_POSITIVE:自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
AW_VER_POSITIVE:自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
AW_VER_NEGATIVE:自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。在下列情况下函数将失败:
窗口使用了窗口边界;窗口已经可见仍要显示窗口;窗口已经隐藏仍要隐藏窗口。若想获得更多错误信息,请调用GetLastError函数。
备注:可以将AW_HOR_POSITIVE或AW_HOR_NEGTVE与AW_VER_POSITVE或AW_VER_NEGATIVE组合来激活一个窗口。
可能需要在该窗口的窗口过程和它的子窗口的窗口过程中处理WM_PRINT或WM_PRINTCLIENT消息。对话框,控制,及共用控制已处理WM_PRINTCLIENT消息,缺省窗口过程也已处理WM_PRINT消息。
速查:WIDdOWS NT:5.0以上版本:Windows:98以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
ArrangelconicWindows
函数功能:该函数安排指定父窗口的各个最小化(图标化)子窗口。
函数原型:UNIT ArrangelconicWindows(HWND hWnd):
参数:
hWnd:父窗口句柄。
返回值:如果函数成功,返回值为一行图标的高度。如果函数失败,返回值为零。若想获得更多错误信息,请调用 callGetLastError函数。
备注:一个应用程序可以通过使用ArrangelconicWindows安排在一个父窗口卫的它自身的最小化的子窗口。这个函数也可以安排桌面图标。使用GetDesttopWindow函数获得桌面窗口的句柄。
一个应用程序给多文本接口(MDI)客户窗口发送WM_MDIICONARRANGE消息,使客户窗口来安排自身的最小化MDI子窗口。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
BeginDeferWindowPos
函数功能:该函数为一个多窗口位置结构分配内存并且返回该结构的句柄。
函数原型:HDWP BeginDeferWindowPos(int nNumWindows);
参数:
nNumWindows:指示存储位置信息的初始窗口数目。如有必要,DeferWindowPos函数可以增加该结构的大小。
返回值:如果函数成功,返回多窗口位置结构。如果分配内存时内存不足,则返回值为NULL。若想获得更多的错误信息,请调用GetLastError函数。
备注:多窗口位置结构是一个内部结构,应用程序不能直接引用。
DeferWindowPos函数在多窗口位置结构中填充了将被移动的一个或多个窗口的目标位置信息。EndDeferWindowPos接收该结构的句柄,并且依据存储在该结构中的信息重定位这些窗口。
如果在多窗口位置结构中的任意一个窗口中设置了SWP_HIDEWINDOW和SWP_SHOWWINDOW标志,则所有窗口都不能被重定位。
如果系统必须增加在多窗口位置结构中由nNumWindows设置的初始窗口数目,但又没有足够的内存分配,则系统的整个窗口重定位顺序失败(BeginDeferWindowsPos,DeferWindowsPos,EndDeferWindowPos)。应用程序通过指定所需最大数目,可以在执行过程中进行早期的检测和处理。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
BringWindowToTop
函数功能:该函数将指定的窗口设置到Z序的顶部。如果窗口为顶层窗口,则该窗口被激活;如果窗口为了窗口,则相应的顶级父窗口被激活。
函数原型:B00L BringWindowToTop(HWND,hWnd);、
参数:
hWnd: 设置到Z序的顶部的窗口句柄。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。
调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,但是BringWindowToTop函数并不能使一个窗口成为顶层窗口。
如果应用程序不在前台中而想设置在前台中,可以调用SetForegroundWindow函数。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lid。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
WINAPI CascadeWihdows
函数功能:该函数层叠排列指定父窗口的各指定子窗口。
函数原型:WORD WINAPI CascadeWihdows(HWND hWndParent,UNIT wHow,CONST RECT*lpRect,UNIT cKids, Const HWND FA*lpKids);
参数:
Parent:父窗口的句柄。如果参数为NVLL,则假定为桌面窗口。
wHow:指定层叠标志。唯一可用的标志为MDITILE_SKIPDISABLED,防止被禁止的MDI子窗口被层叠排列。
lpBect:指向RECT结构的指针,该结构以客户坐标定义矩形区域,并在这个区域中排列窗口、该参数可以为NULL,这种情况下使用父窗口的客户区域。
cKids:指明由lpKids参数指定的数组的成员个数。如果IpKidS参数为NULL,则此参数将被忽略。
lpKids:指向将被排列的子窗口的句柄数组的指针。如果此参数为空,则指定的父窗口(或桌面窗口)的所有子窗口都将被排列。
返回值:如果函数成功,返回值为被排列的窗口数目;如果函数失败,返回值为零。若想获得更多错误信息,请调用 GetLastError函数。
备注:调用CascadeWindows函数使所有最大化窗口恢复到它们原来的大小。
速查: Windows NT:4.0以上版本;Windows:95以上版本;Windows CE:不支持;头文件:winuser.h;库文件:User32.1
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
ChildWindowFromaPoint
函数功能:该函数确定属于某一父窗口的哪一个子窗口(如果存在的话)包含一个指定的点。
函数原型:HWND ChildWindowFromaPoint(HWND hWndParent.POINT Point):
Parent:父窗口句柄。
Point:指定一个POINT结构,该结构给定了被检查的点的坐标。
返回值:返回值为包含该点的子窗口的句柄,即使该子窗口是隐藏的或被禁止的。如果该点在父窗口之外,则返回值为NULL。如果该点在父窗口内,但在任一子窗口外,则返回值为父窗口句柄。
备注:系统有一个与某一父窗口有联系的所有子窗口的内部列表。列表中的句柄顺序依据这些子窗口的z序。如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点的第一个窗口的句柄。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE;1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
ChidWindowFromaPointEx
函数功能:该函数确定属于父窗口的哪一个子窗口(如果存在的话)包含着指定的点。该函数可以忽略不可见的、禁止的和透明的子窗口。
函数原型:HWND ChidWindowFromaPointEx(HWND hwndParent,POINT pt,UNIT uFlags);
参数:
hWndParent:父窗口句柄。
pt:指定一个POINT结构,该结构定义了被检查的点的坐标。
uFlags:指明忽略的子窗口的类型。该参数可以是下列参数的组合。
CWP_ALL:不忽略任一子窗口。CWP_SKIPINVISIBLE:忽略不可见的子窗口。
CWP_SKIPDISABLE:忽略禁止的子窗口。CWP_SKIPTRABSPARENT:忽略透明子窗口。
返回值:返回值为包含该点并且满足由uFlags定义的规则的第一个子窗口的句柄。如果该点在父窗口内,但在任一满足条件的子窗口外,则返回值为父窗口句柄。如果该点在父窗口之外或函数失败,则返回值为NULL。
备注:系统有一个与某一父窗口有联系的所有子窗口的内部列表。列表中的句柄顺序依据这些子窗口的Z序。如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点并且满足由uFlags定义的规则的第一个窗口的句柄。
速查:WindowS NT:4.0以上版本;Windows:95以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
CloseWindow
函数功能:该函数最小化指定的窗口,但并不销毁该窗口。
函数原型:BOOL CloseWindow(HWND hWnd);
参数:
hWnd:将要最小化的窗口的句柄。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:窗口尺寸被最小化成一个图标,并移动到屏幕的图标区域。系统显示窗口的图标而不显示窗口,并在图标下显示窗口标题。应用程序必须使用DestroyWindow函数销毁窗口。
速查:WindowS NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
CreateWindow
函数功能:该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。若要使用除CreateWindow函数支持的风格外的扩展风格,则使用CreateWindowEx函数代替CreateWindow函数。
函数原型:HWND CreateWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HANDLE hlnstance,LPVOID lpParam);
参数:
lpClassName:指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassName参数字的低16位,该参数的高位必须是0。
如果lpClassName是一个字符串,它指定了窗口的类名。这个类名可以是任何用函数RegisterClassEx注册的类名,或是任何预定义的控制类名。请看说明部分的列表。
LPWindowName:指向一个指定窗口名的空结束的字符串指针。
如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上。当使用Createwindow函数来创建控制例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本。
dwStyle:指定创建窗口的风格。该参数可以是下列窗口风格的组合再加上说明部分的控制风格。风格意义:
WS_BORDER:创建一个单边框的窗口。
WS_CAPTION:创建一个有标题框的窗口(包括WS_BODER风格)。
WS_CHIlD:创建一个子窗口。这个风格不能与WS_POPVP风格合用。
WS_CHLDWINDOW:与WS_CHILD相同。
WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。
WS_CLlPBLINGS;排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。
WS_DISABLED:创建一个初始状态为禁止的子窗口。一个禁止状态的窗日不能接受来自用户的输人信息。
WS_DLGFRAME:创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。
WS_GROUP:指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。
WS_HSCROLL:创建一个有水平滚动条的窗口。
WS_ICONIC:创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。
WS_MAXIMIZE:创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。
WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。
WS_OVERtAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。
WS_POPUP;创建一个弹出式窗口。该风格不能与WS_CHLD风格同时使用。
WS_POPUWINDOW:创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。
WS_SIZEBOX:创建一个可调边框的窗口,与WS_THICKFRAME风格相同。
WS_SYSMENU:创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。
WS_TABSTOP:创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。
WS_THICKFRAME:创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。
WS_TILED:产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。
WS_TILEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU MS_THICKFRAME.
WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。
WS_VISIBLE:创建一个初始状态为可见的窗口。WS_VSCROLL:创建一个有垂直滚动条的窗口。
X:指定窗口的初始水平位置。对一个层叠或弹出式窗口,X参数是屏幕坐标系的窗口的左上角的初始X坐标。对于子富口,x是子窗口左上角相对父窗口客户区左上角的初始X坐标。如果该参数被设为CW_UCEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略Y参数。CW_USEDEFAULT只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则X和y参数被设为零。
Y:指定窗口的初始垂直位置。对一个层叠或弹出式窗日,y参数是屏幕坐标系的窗口的左上角的初始y坐标。对于子窗口,y是子窗口左上角相对父窗口客户区左上角的初始y坐标。对于列表框,y是列表框客户区左上角相对父窗口客户区左上角的初始y坐标。如果层叠窗口是使用WS_VISIBLE风格位创建的并且X参数被设为CW_USEDEFAULT,则系统将忽略y参数。
nWidth:以设备单元指明窗口的宽度。对于层叠窗口,nWidth或是屏幕坐标的窗口宽度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,则系统为窗口选择一个缺省的高度和宽度:缺省宽度为从初始X坐标开始到屏幕的右边界,缺省高度为从初始X坐标开始到目标区域的顶部。CW_USEDFEAULT只参层叠窗口有效;如果为弹出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为零。
nHelght:以设备单元指明窗口的高度。对于层叠窗口,nHeight是屏幕坐标的窗口宽度。若nWidth被设为CW_USEDEFAULT,则系统忽略nHeight参数。
hWndParent:指向被创建窗口的父窗口或所有者窗口的旬柄。若要创建一个子窗口或一个被属窗口,需提供一个有效的窗口句柄。这个参数对弹出式窗日是可选的。Windows NT 5.0;创建一个消息窗口,可以提供HWND_MESSAGE或提供一个己存在的消息窗口的句柄。
hMenu:菜单句柄,或依据窗口风格指明一个子窗口标识。对于层叠或弹出式窗口,hMenu指定窗口使用的菜单:如果使用了菜单类,则hMenu可以为NULL。对于子窗口,hMenu指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的。
hlnstance:与窗口相关联的模块事例的句柄。
lpParam:指向一个值的指针,该值传递给窗口 WM_CREATE消息。该值通过在IParam参数中的CREATESTRUCT结构传递。如果应用程序调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个CLIENTCREATESTRUCT结构。
返回值:如果函数成功,返回值为新窗口的句柄:如果函数失败,返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:在返回前,CreateWindow给窗口过程发送一个WM_CREATE消息。对于层叠,弹出式和子窗口,CreateWindow给窗口发送WM_CREATE,WM_GETMINMAXINFO和WM_NCCREATE消息。消息WM_CREATE的IParam参数包含一个指向CREATESTRUCT结构的指针。如果指定了WS_VISIBLE风格,CreateWindow向窗口发送所有需要激活和显示窗口的消息。
获取有关任务条是否为创建的窗口显示一个按钮的控制信息,参看Taskbar按钮的Visbility。
以下预定义的控制类可以在lpClassName参数中指定。注意在dwStyle参数中可以使用的相应的控制风格。
BUTTON按钮按钮是一个小矩形子窗口,用户可以点击来打开或关闭。按钮控制可以单独使用或包含在组中使用,可以为控制写标签或不写标签。当用户点击按钮控制时按钮的外观有明显的改变。请参看Button。查看dwStyle参数中指定的按钮风格表请参考Button Style。
COMBOBOX组合框由一个列表框和一个类似于编辑控制的选择域组成。在使用这个风格控制时,应用程序或者使列表框一直显示或者是作成一个下拉列表。如果列表框可见,则在编辑域中输入字符将使列表框中与字符一致的第一个域高亮。反之,在列表框中选择的项将显示在编辑域中。请参看Combo Boxes。
查看dwStyle参数中指定的组合框风格表请参考Combo Boxes Style。
EDIT编辑框一个小的矩形子窗口用户可以使用键盘向其中输入文本。用户可以通过点击或按Tab键来选中编辑框控制并且使控制获得焦点。当编辑框中显示一个闪烁的插入记号时,用户可以输入文本。使用鼠标移动光标,选择被替换的字符或设置插入字符的位置或使用回退键删除字符。请参看Edit。controls。
查看dwStyle参数中指定的编辑框风格的表格请参考Edit Control Style。
LISTBOX列表框字符串的列表。当应用程序必须显示名称的列表,例如文件名列表等,使用户可以从中选择时就可指定列表框。用户可以通过单击来选择名称。选择时,被选择名高亮,同时传递给父窗口一个通知消息。请参看LiSt Box Style。查看dwStyle参数中指定的列表风格表请参考List BOX Control Style。
MDICLIENT MDI客户设计出MDI客户窗口。窗口接收控制MDI应用程序子窗口的消息。建议使用两种控制风格位:WS_CLIPCHILDREN和WS_CHILD。指定了WS_HSCROLL和WS_VSCROLL风格的MDI客户窗口允许用户将MDI子窗口滑动进入视窗。请参看MDI。
RiChEdit设计一个Rich Editl.0版的控制。该控制使用户可以以字符和段落格式测览和编辑文本,并且可以包含嵌入的COM对象。请参看Rich Edit Controls。查看dwStyle参数中指定的RichEdit风格表请参考LiSt Box Control Style。
RICHEDIT CLASS设计一个Rich Edik2.0版的控制。该控制使用户可以以字符和段落格式测览和编辑文本,并且可以包含嵌入的COM对象。请参看RichEditControls。查看dwStyle参数中指定的RichEdit风格表请参考RichEditControIStyle。
SCROLLBAR 滚动条设计的一个包含着一个滚动盒和两端有方向箭头的矩形。只要用户点击了控制,滚动条就给父窗口发送一个通知消息。如有必要,父窗口负责更新滚动条的位置。请参看ScrollBars。查看dwStyle参数中指定的滚动条风格表请参考Scroll Bars Style。
STATIC一个简单的静态文本域,文本盒或矩形用于给控制加标签,组合控制或将控制与其他控制分开。
静态控制不提供输入和也不提供输出。请参看Static Control Styles。查看dwStyle参数中指定的静态文本风格表请参考Scroll Bars Style。
Windows95:系统可以支持最大16,364个窗口句柄。
备注:如果在链接应用程序时指明是Windows 4.x版本,除非应用程序的窗口有窗口某单,否则窗口控制没有标题控制。对Windows3.x版本没有这种要求。
Windows CE:CreateWindow是以“宏”方式完成的。它被定义为CreateWindowEX,并且dwExStyle参数被置为长整数0。不支持菜单条控制,除非被声明为子窗口标志否则hMenu参数必须为NULL。不支持MDICLIENT窗口类。dwStyle参数可以是对话框(Dialogue Box),窗口(Windows),控制(Controls)文件中的窗口风格和控制风格的组合。
下列dwStyle标志在窗口中不支持:
WS_CHILDWINDOW WS_ICONC;WS_MAXMIZE WS_MAXIMIZEBOX;WS_MINIMIZE WS_MINIMIZEBOX;
WS_OVERLAPPEDWINDOW WS_POPUPWINDOW;WS_SIZEBOXWS_THICKFRAME WS_TILED WS_TILEDWINDOW
下列dwStyle标志在控制和对话框中不支持:
不支持的按钮风格和静态控制风格:
BS_LEFTTEXT SS_BLACKFRAME;BS_MULTILINE SS_GRAYFRAME BS_TEXT SS_METAPICT;BS_USERBUTTON SS_SIMPLE
不支持组合框SS_WHITERECT风格。
CBS_OWNERDRAWFIXED SS_BLACKRECT;CBS_OWNWEDRAWVARIABLE SS_GRAYRECT; CBS_SIMPLE8R旧HTrIMAGE
不支持列表框控制SS_WHITEFRAME风格。
LBS_NODATA
不支持的对话框风格:
LBS_OWNERDRAWFIXED DS_ABSALIGN; LBS_OWNERDRAWVARIABLE DS_CENTERMOUSE; LBS_STANDARD DS_CONTEXTHELP
不支持滚动条的 DS_FIXEDSYS风格
SBS_BOTTOMALIGN DS_NOFAILCREATE;SBS_RIGHTALIGN DS_NOIDLEMSG;
SBS_SlZEBOXBOTT0MRIHTALIGN DS_SYSMODAL;SBS_SIZEGRIP
可使用BS_OWNERDRAW风格来代替BS_USERBUTTON风格。
可使用SS_LEFT或SS_LEFTNOWORDWRAP风格来代替静态控制的SS_SIMPLE风格。
不支持MDICLIENT窗口类。
所有窗口都隐含WS_CLIPSIBLINGS和 WS_CLIPCHILDREN风格。
Windows CE1.0版除对话框外不支持被属窗口。如果hwndParent参数不为NULL,则窗口隐含给出WS_CHILD风格。Windows CE1.0不支持菜单条。
速查: Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib; Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
CreateWindowEx
函数功能:该函数创建一个具有扩展风格的重叠式窗口、弹出式窗口或子窗口,其他与 CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindowEx。
函数原型:HWND CreateWindowEx(DWORD dwExStle,LPCTSTR IpClassName,LPCTSTR lpWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hWndParent,HMENUhMenu,HANDLE hlnstance,LPVOIDlpParam);
参数:
dwExStyle:指定窗口的扩展风格。该参数可以是下列值:
WS_EX_ACCEPTFILES:指定以该风格创建的窗口接受一个拖拽文件。
WS_EX_APPWINDOW:当窗口可见时,将一个顶层窗口放置到任务条上。
WS_EX_CLIENTEDGE:指定窗口有一个带阴影的边界。
WS_EX_CONTEXTHELP:在窗口的标题条包含一个问号标志。当用户点击了问号时,鼠标光标变为一个问号的指针、如果点击了一个子窗口,则子窗日接收到WM_HELP消息。子窗口应该将这个消息传递给父窗口过程,父窗口再通过HELP_WM_HELP命令调用WinHelp函数。这个Help应用程序显示一个包含子窗口帮助信息的弹出式窗口。 WS_EX_CONTEXTHELP不能与WS_MAXIMIZEBOX和WS_MINIMIZEBOX同时使用。
WS_EX_CONTROLPARENT:允许用户使用Tab键在窗口的子窗口间搜索。
WS_EX_DLGMODALFRAME:创建一个带双边的窗口;该窗口可以在dwStyle中指定WS_CAPTION风格来创建一个标题栏。
WS_EX_LEFT:窗口具有左对齐属性,这是缺省设置的。
WS_EX_LEFTSCROLLBAR:如果外壳语言是如Hebrew,Arabic,或其他支持reading order alignment的语言,则标题条(如果存在)则在客户区的左部分。若是其他语言,在该风格被忽略并且不作为错误处理。
WS_EX_LTRREADING:窗口文本以LEFT到RIGHT(自左向右)属性的顺序显示。这是缺省设置的。
WS_EX_MDICHILD:创建一个MD子窗口。
WS_EX_NOPATARENTNOTIFY:指明以这个风格创建的窗口在被创建和销毁时不向父窗口发送WM_PARENTNOTFY消息。
WS_EX_OVERLAPPED:WS_EX_CLIENTEDGE和WS_EX_WINDOWEDGE的组合。
WS_EX_PALETTEWINDOW:WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW和WS_WX_TOPMOST风格的组合WS_EX_RIGHT:窗口具有普通的右对齐属性,这依赖于窗口类。只有在外壳语言是如Hebrew,Arabic或其他支持读顺序对齐(reading order alignment)的语言时该风格才有效,否则,忽略该标志并且不作为错误处理。
WS_EX_RIGHTSCROLLBAR:垂直滚动条在窗口的右边界。这是缺省设置的。
WS_EX_RTLREADING:如果外壳语言是如Hebrew,Arabic,或其他支持读顺序对齐(reading order alignment)的语言,则窗口文本是一自左向右)RIGHT到LEFT顺序的读出顺序。若是其他语言,在该风格被忽略并且不作为错误处理。
WS_EX_STATICEDGE:为不接受用户输入的项创建一个3一维边界风格
WS_EX_TOOLWIDOW:创建工具窗口,即窗口是一个游动的工具条。工具窗口的标题条比一般窗口的标题条短,并且窗口标题以小字体显示。工具窗口不在任务栏里显示,当用户按下alt+Tab键时工具窗口不在对话框里显示。如果工具窗口有一个系统菜单,它的图标也不会显示在标题栏里,但是,可以通过点击鼠标右键或Alt+Space来显示菜单。
WS_EX_TOPMOST:指明以该风格创建的窗口应放置在所有非最高层窗口的上面并且停留在其L,即使窗口未被激活。使用函数SetWindowPos来设置和移去这个风格。
WS_EX_TRANSPARENT:指定以这个风格创建的窗口在窗口下的同属窗口已重画时,该窗口才可以重画。
由于其下的同属富日已被重画,该窗口是透明的。
IpClassName:指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobaIAddAtom函数产生的全局量。这个小于OxCOOO的16位数必须是IpClassName参数字的低16位,该参数的高位必须是O。
如果lpClassName是一个字符串,它指定了窗口的类名。这个类名可以是任何用函数RegisterClassEx注册的类名,或是任何预定义的控制类名。请看说明部分的列表。
lpWindowName:指向一个指定窗口名的空结束的字符串指针。
如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上。当使用CreateWindow
函数来创建控制例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本。
dwStyle:指定创建窗口的风格。该参数可以是下列窗口风格的组合再加上说明部分的控制风格。
x:参见CreateWindow。
y:参见CreateWindow。
nWidth:CreateWindow。
nHeigth:参见CreateWindow。
hWndParent:参见CreateWindow。
hMenu:参见CreateWindow。
hlnstance:参见CreateWindow。
lpParam:参见CreateWindow。
返回值:参见CreateWindow。
备注:参见CreateWindow。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:USer32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
DeferWindowPos
函数功能:该函数为指定的窗口更新指定的多窗口位置结构,然后函数返回该更新结构的句柄。EndDeferWindowPos函数使用该结构内的信息同时改变一些窗口的位置和大小。该结构由BeginDeferWindowPos函数创建。
函数原型:HWND DeferWindowPos(HDWP hWinPoslnfo,HWND hWnd,HWND hWndlnsertAffer, int x,int y, int cx, int Cy,UNIT uFags);
参数:
hWinPoslnfo:多窗口定位结构的句柄,该结构包含着一个或多个窗口的尺寸和定位信息,可以由函数BeginDeterWindowPos返回该结构或是由最近一次调用的DeferWindowPos函数返回。
hWnd:窗口的句柄,该窗口的更新信息存储在结构中。
hWndlnsertAfter:被定位窗口的Z序的前一窗口的句柄。这个参数必须为窗口句柄或下列值之一:HWND_BOTTOM:将窗口定位在Z序的底部。如果hWnd参数指定的是一个最顶层窗口,则该窗口将失去顶级位置而被排在所有其他窗口的底部。
HWND_NOTOPMOST:将窗口放置在所有顶层窗口的顶部(即在所有顶层窗口的后面)。如果窗口已经是一个非顶层窗口则此参数不起作用。
HWND_TOP:将窗口放置在Z序的顶部。
HWND_TOPMOST:将窗口放置在所有非顶层窗口的顶部、即使未被激活,窗口仍保持顶级位置。如果在uFlagS参数中指定了SWP_NOZORDER标志则本参数将被忽略。
x:指定窗口左上角的X坐标。
y:指定窗口左上角的y坐标。
cx:以像素定义窗口的新的宽度。
cy:以像素定义窗口的新的宽度。
uelage:指定下列影响窗口的大小和位置的值的组合:
SWP_DRAWFRAME:在窗口周围画一个边框(该边框定义在窗口类的描述中)。
SWP_FRAMECHANGED:给窗口发送一个WM_NCCALCSIZE消息,即使窗口的尺寸不作改变也要发送。如果未指定这个标志,则只有窗口大小 改变时才发送WM_NCCALCSIZE消息。
SWP_HIDEWINDOW:隐藏窗口。
SWP_NOACTIVATE:不激活窗口。如果未指定这个标志,则窗口被激活并且根据hWndlnsertAfter参数的设置移到或是顶部窗口的顶部或是非顶部窗口的顶部。
SWP_NOMOVE;维持当前位置(忽略X和y参数)。
SWP_NOOWNERZORDER:不改变所有者窗口在Z序中的位置。
SWP_NOREDRAM:不作窗口更新。如果设定了这个标志,则不发生任何窗口刷新的动作。包括不对客户区,非客户区(包括标题条和滚动条),以及由于窗口移动露出的部分父窗口进行刷新。当设定了这个标志时,应用程序一定要明确指出将原窗口清除并且重画窗口的任何部分以及父窗口需要重画的部分。
SWP_NOREPOSITION:同 SWP_NOOWNERZORDER标志。
SWP_NOSENDCHANGING:防止窗口接受到WM_WINDOWPOSCHANGING消息。
SWP_NOSIZE;保持当前大小。(即忽略CX,Xy参数)。
SWP_NOZORDER:保持当前Z序(忽略hWndlnsertAfter参数)。
SWP_SHOWWINDOW:显示窗口。
返回值:返回值指明了被更新的多窗口定位结构。函数返回的句柄可能与传递给函数的句柄不同。这个函数返回的新句柄应在下一次调用时传递给DeferWindowPos函数和EndDeferWindowPos函数。如果调用函数时系统资源不足,则函数返回NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:如果调用函数DeferWindowPos失败,应用程序应放弃窗口定位动作,并且不再调用EndDeferWindowPos 函数。如果未指定SWP_NOZORDER,系统将由hWnd参数指定的窗口定位于在hWndlnsertAfer参数指定的窗口之后的位置。如果hWndlnsertAfsr参数为空或为HWND_TOP,则系统将窗口放置在Z序顶端。如果hWndlnsertAfer设为HWND_BOTTOM则系统将窗口放置在Z序的底部。
所有子窗口的坐标都是相对于父窗口客户区的左上角的坐标。
一个窗口可以通过两种方式设为顶部窗口:或是设hWndlnsertAfter为HWND_TOPMOST并确保未设置SWP_NOZORDER标志;或是设置窗口在Z序中的位置使其在所有已存在的顶端窗口的顶部。当一个非顶端窗口被设为顶端窗口时,则属于它的窗口均被置为顶端窗口,而其所有者则不变。
如果SWP_NOACTIVATE或SWP_NOZORDER均未设置(即当应用程序要求在窗口被激活的同时改变其z序时),hwdfnsertPos参数只在下列情况中使用:
在hWndlnsertAfter参数中既未设定HWND_TOPMOST也未设定HWND_NoTTOPMOST标志; 由hWnd指定的窗口不是激活窗口;
应用程序在将窗口设为活动窗口时应将窗口设置到Z序的顶部。应用程序可以不受任何限制地改变被激活窗口在Z序中的位置,或在激活一个窗口之后将该窗口移到顶端窗口或非顶端窗口的顶部。
如果一个顶端窗口被重定位到Z序的底部(HWND_BOTTOM)或任何非顶端窗口后面时将不再是顶端窗口。
一个非顶端窗口可能拥有一个顶端窗口,反之则不成立。从属的任何窗口(例如一个对话框)都设置为顶层窗口以确保所有的从属窗口都在其所有者之上。
速查: Windows NT:3.1以上版本;Windows:95以上版本; Windows CE:不支持;头文件: winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumChildProc
函数功能:是与函数EnumChilWindows一起使用的由应用程序定义的回调函数。它接收子窗口句柄。类型 WNDENUMOROC定义了指向这个回调函数的指针。EnumChildProc是一个应用程序定义的函数名的位置标志符。
函数原型:BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM IParam);
参数:
hWnd:指向在EnumChildWlndows中定义的父窗口的子窗口句柄。
lparam:指定在EnumchildWindows中给出的应用程序定义值。
返回值:为继续列举,回调函数必须返回TRUE;为停止列举,回调函数必须返回FALSE。
备注:回调函数可以执行任何要求的任务。应用程序必须通过将其地址传送给EnumChildwindows函数来注册这个回调函数。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持:头文件:winuser.h;库文件:用户自定义。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnableWindow
函数功能:该函数允许或禁止指定的窗口或控制接受鼠标输入或键盘输入。当输入被禁止时窗口不能接收鼠标单击和按键等类输入;当输入允许时,窗口接受所有的输入。
函数原型:BOOL EnableWindow(HWND hWnd,BOOL bEndble);
参数:
hWnd:允许或禁止的窗口句柄。
bEnable:指定是允许还是禁止窗口。如果这个参数为TRUE,窗口允许;如果参数为FALSE,则窗口被禁止。
返回值:如果窗口此前曾被禁止,则返回值为非零;如果窗口此前未被禁止,则返回值为零。若想获得更多错误信息,请调用 GetLastError函数。
备注:如果窗口的使能状态正在改变,则在EnableWindow函数返回前发送一个WM_ENABLE消息。如果窗口己经被禁止,则它的所有子窗口都被禁止,即使未向它们发送WM_ENABLE消息。
在一个窗口被激活前必须是使能的。例如,如果应用程序正在显示一个无模式对话框并且禁止了它的主窗口,则应用程序在销毁对话框之前一定要使能该主窗口。否则,将有另外一个窗口接受键盘焦点并且被激活。如果一个子窗口被禁止,则在系统确定由哪一个窗口接受鼠标消息时该子窗口将被忽略。
当窗口被创建时缺省为使能状态。要创建一个初始被禁止的窗口,应用程序可以在CreateWindowh 函数和CreateWindowhEx中指定WS_DISABLED风格。在窗口被创建后,应用程序可以使用EnaoleWindow函数来使能和禁止窗口。
应用程序可以使用这个函数来使能或禁止在对话框内的控制。一个被禁止的控制不能接受键盘焦点用户也不能进入该控制。
速查:Windows NT:3.1以上版本;Windows:95以上版本; Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EndDeferWindowPos
函数功能:该函数在一个单一的屏幕刷新周期内同时更新一个或多个窗口的位置和大小。
函数原型:BOOL EndDeferWindowPos( HWND hWinPoslnfo);
参数;
hWlnPoslnfo:指向多窗口定位结构的句柄,该结构包含着一个或多个窗口的尺寸和定位信息。这个内部结构由BeginDeferWindowPos函数返回或由最近一次调用DeferWindowPos函数退回。
返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注;EndDeferWindowPos函数向内部结构指定的每一个窗口发送WM_WINDOWPOSCHANGING和WM_WINDOWPOSCHANGED消息。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumChildProc
函数功能:该函数是由应用程序定义的,与函数EnumChildWindows一起使用的回调函数。它接收子窗口句柄。类型WNDENUMPROC定义了一个指向回调函数的指针。EnumChildProc是一个应用程序定义的函数名的位置标志符。
函数原型:BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM ItParam);
参数:
hwnd:指向在EnumChildWindows中指定的父窗口的子窗口句柄。
Lparam:指定在EnumChildWindows函数给出的应用程序定义值。
返回值:为继续枚举,回调函数必须返回TRUE;为停止枚举,回调函数必须返回FALSE。
备注:回调函数可以执行任何要求的任务。
应用程序必须通过将其地址传送给EnumChildWindows函数来注册这个回user.h;库文件:用户自定义。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumThreadWindows
函数功能:该函数枚举所有与一个线程有关的非子窗口。办法是先将句柄传给每一个窗口,随后传送给应用程序定义的回调函数。EnumThreadWindows函数继续到所有窗口枚举完为止或回调函数返回FALSE为止。要枚举一个特定窗口的所有子窗口;使用EnumChjdwjndows函数。
函数原型:BOOL EnumThreadWindows{D函数功能:该函数销毁指定的窗口。该函数发送WS_DESTROY,WS_NCDESTROY消息到窗口中以撤消该窗口并且将键盘焦点移开。该函数也销毁窗口菜单,刷新线程消息队列,销毁计时器,删除剪贴板的所有权,并断开剪贴板视窗链接(如果窗口在视窗链接的顶端)。
如果指定的窗口是父窗口或所有者窗口,DestroyWindow在销毁父窗口或所有者窗口时自动销毁相关的子窗口和从属窗口。该函数首先销毁相关联的子窗口和从属窗口,然后销毁父窗口和所有者窗口。
DestroyWindow也销毁由CreateDialog函数创建的无模式对话框。
函数原型: BOOL DestroyWindow(HWND hWnd);
参数:
hWnd;将被销毁窗口的句柄。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:一个线程不能用DestroyWindow函数销毁由其他线程创建的窗口。
如果被销毁窗口是一个不具有 WS_EX_NOPARENTNOTIFY风格的子窗口,则其父窗口将接收到一个WM_PARENTNOTIFY消息。
Windows CE:DestroyWindow函数不发送 WM_NCDESTROY消息。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumThreadWindows
函数功能:该函数枚举所有与一个线程相关联的非子窗口,办法是先将句柄传送给每一个窗口,随后传送给应用程序定义的回调函数。EnumThreadWindows函数继续直到所有窗口枚举完为止或回调函数返回FALSE为止。要枚举一个特定窗口的所有子窗口,使用EnumChildWindows函数。
函数原型:BOOL EnumThreadWindows(DWORD dwThreadld,WNDENUMPROClpfn,LPARAMlparam);
参数:
dwThreadld:标识将被列举窗口的线程。
lpfn:指向一个应用程序定义的回调函数指针,请参看EnumThreadWndProc。
lPararm:指定一个传递给回调函数的应用程序定义值。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1以上版本; Windows:95以上版本; Windows CE:不支持:头文件:winuser.h;库文件:user32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumWindows
函数功能:该函数枚举所有屏幕上的顶层窗口,办法是先将句柄传给每一个窗口,然后再传送给应用程序定义的回调函数。EnumThreadWindows函数继续到所有顶层窗口枚举完为止或回调函数返回FALSE为止
函数原型:BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
参数:
lpEnumFunc:指向一个应用程序定义的回调数指针,请参看EnumWindowsProc。
lPararm:指定一个传递给回调函数的应用程序定义值。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:EnumWindows函数不列举子窗口。
在循环体中调用这个函数比调用GetWindow函数更可靠。调用GetWindow函数中执行这个任务的应用程序可能会陷入死循环或指向一个已被销毁的窗口的句柄。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
EnumWindowsProc
函数功能:该函数是一个与EnumWindows或EnumDesktopWindows一起使用的应用程序定义的回调函数。它接收顶层窗口句柄。WNDENUMPROC定义一个指向这个回调函数的指针。EnumWindowsProc是应用程序定义函数名的位置标志符。
函数原型:BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam);
参数:
hwnd:顶层窗口句柄。
lParam:指定在EnumWIndowsh或EnumDesktopWindows中的应用程序定义值。
返回值:为继续列表,回调函数必须返回TRUE;若停止列表,它必须返回FALSE。
备注:应用程序必须通过传递给EnumWindows或EnumDesktopWindows应用程序地址来注册这个回调函数。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:头文件:winuser.h;库文件:用户自定义。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
FindWindow
函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
参数:
IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。
IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。
返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。
若想获得更多错误信息,请调用GetLastError函数。
备注:Windows CE:若类名是一个成员,它必须是从 RegisterClass返回的成员。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib; Unicode:在 Windows NT上实现为 Unicode和 ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
FindWindowEx 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。
函数原型:HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);
参数;
hwndParent:要查找子窗口的父窗口句柄。
如果hwnjParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。
hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。
lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。
若想获得更多错误信息,请调用GetLastError函数。
速查 NT:4.0对以上版本;Windows:95以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:
在Windows NT上实现为Unicode和ANSI两种版本。
GetClientRect
函数功能:该函数获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对子窗口客户区的左上角而言的,因此左上角坐标为(0,0)
函数原型:BOOL GetClientRect(HWND hWnd,LPRECT lpRect);
参数:
GetLastError 函数。
备注:Windows CE:命令条包含在客户区中。
速查:Windows NT: 3.1以上版本:Windows:95以上版本: Windows CE:1.0以上版本:头文件:winuser.h;库文件:user32.lib
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetDesktopWindow
函数功能:该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。
函数原型:HWND GetDesktopWindow(VOID)
参数:无。
返回值:函数返回桌面窗口的句柄。
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetForegroundwindow
函数功能:该函数返回前台窗口(用户当前工作的窗口)。系统分配给产生前台窗口的线程一个稍高一点的优先级。
函数原型:HWND GetForegroundwindow(VOID)
参数:无。
返回值:函数返回前台窗回的句柄。
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetLastActivePopup
函数功能:该函数确定指定窗口中的哪一个弹出式窗口是最近活动的窗口。
函数原型:HWND GetLastActivePopup(HWND hWnd);
参数:
hWnd:所有者窗口句柄。
返回值:返回值标识了最近活动的弹出式窗口的句柄。如果满足下列任一条件,则返回值与参数hWnd
相同:由hWnd指定的窗口是最近活动的:由hWnd指定的窗口不拥有任何弹出式窗口;由hWnd指定的窗口不是顶层窗口或它属于其他窗口。
速查:Windows:3.1以上版本;Windows:95以上版本:Windows CE:不支持;头文件:winuser.h;
库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetNextWindow
函数功能:该函数返回z序中的前一个或后一个窗口的句柄。下一窗口在指定窗口的下面,前一窗口则在上面。如果指定的窗口是顶端窗口,该函数返回下一个(或前一个)顶端窗口的句柄。如果指定的窗口是顶层窗口,函数返回下一个(或前一个)顶层窗口的句柄。如果函数是子窗口,则函数搜索下一个或前一个子窗口的句柄。
函数原型:HWND GetNextWindow(HWND hWnd,UNIT wCmd);
参数:
hWnd:一个窗口的句柄。窗口句柄在wCmd参数的基础上获得的相对于这个窗口的句柄。
wCmd:指明窗口返回的是前一窗口的句柄还是后一窗口的句柄。该参数可以是下列两个值之一:
GW HWNONEXT:返回在给定窗口的下面窗口的句柄。
GW_HWNDPREV:返回在给定窗口的上面窗口的句柄。
返回值:如果函数成功,返回值是前一窗口(或后一窗口)的句柄。如果前后窗口不存在,则返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:在设定了GW_HWNDNEXT或GW_GETPREV标志时,调用该函数与调用GetWindow函数相同。
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:不支持:头文件:Winuer.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetParent
函数功能:该函数获得一个指定子窗口的父窗口句柄。
函数原型:HWND GetParent(HWND hWnd);
参数:
hWnd:子窗口句柄,函数要获得该子窗口的父窗口句柄。
返回值:如果函数成功,返回值为父窗口句柄。如果窗口无父窗口,则函数返回NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:WindowsCE:Windows CE1.0版本不支持除了对话框之外的所属子窗口。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:头文件:Winuser.h:库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetTopWindow
函数功能:该函数检查与特定父窗口相联的子窗口z序,并返回在z序顶部的子窗口的句柄。
函数原型:HWND GetTopWindow(HWND hWnd);
参数:
hWnd:被查序的父窗口的句柄。如果该参数为NULL,函数返回Z序顶部的窗口句柄。
返回值;如果函数成功,返回值为在Z序顶部的子窗口句柄。如果指定的窗口无子窗口,返回值为NULL。
若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:不支持;头文件:Winuser.h:库文件;user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindow
函数功能:该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄。
函数原型:HWND GetWindow(HWND hWnd,UNIT nCmd);
参数:
hWnd:窗口句柄。要获得的窗口句柄是依据nCmd参数值相对于这个窗口的句柄。
nCmd:说明指定窗口与要获得句柄的窗口之间的关系。该参数值可以是下列之一:
GW_CHILD:如果指定窗口是父窗口,则获得的是在Z序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口。
GW_ENABLEDPOUP:(WindowsNT 5.0)返回的句柄标识了属于指定窗口的处于使能状态弹出式窗口(检索使用第一个由GW_HWNDNEXT 查找到的满足前述条件的窗口);如果无使能窗口,则获得的句柄与指定窗口相同。
GW_HWNDFIRST:返回的句柄标识了在Z序最高端的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在Z序最高端的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在z序最高端的顶层窗口:如果指定窗口是子窗口,则句柄标识了在Z序最高端的同属窗口。
GW_HWNDLAST:返回的句柄标识了在z序最低端的相同类型的窗口。如果指定窗口是最高端窗口,则该柄标识了在z序最低端的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在z序最低端的顶层窗口;如果指定窗口是子窗口,则句柄标识了在Z序最低端的同属窗口。
GW_HWNDNEXT:返回的句柄标识了在Z序中指定窗口下的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口下的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在指定窗口下的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口下的同属窗口。
GW HWNDPREV:返回的句柄标识了在Z序中指定窗口上的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口上的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在指定窗口上的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口上的同属窗口。
GW_OWNER:返回的句柄标识了指定窗口的所有者窗口(如果存在)。
返回值:如果函数成功,返回值为窗口句柄;如果与指定窗口有特定关系的窗口不存在,则返回值为NULL。
若想获得更多错误信息,请调用GetLastError函数。
备注:在循环体中调用函数EnumChildWindow比调用GetWindow函数可靠。调用GetWindow函数实现该任务的应用程序可能会陷入死循环或退回一个已被销毁的窗口句柄。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindowPlacement
函数功能:该函数返回指定窗口的显示状态以及被恢复的、最大化的和最小化的窗口位置。
函数原型:BOOL GetWindowPlacement(HWND hWnd,WINDOWPLACEMENT★lpwndpl);
参数:
hWnd: 窗日句柄。
lpwndpl:指向WINDOWPLACEMENT结构的指针,该结构存贮显示状态和位置信息。
在调用GetWindowPlacement函数之前,将WINDOWPLACEMENT结构的长度设为
sizeof(WIDNOWPLACEMENT)。如果lpwndpl->length设置不正确则函数GetWindowPlacement将失败。
返回值;如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetlastError函数。
备注:由该函数获得的WINDOWPLACEMENT结构的flag单元总为0。如果hWnd的窗口被最大化,则showCmd元为SHOWMZAXMIZED,如果窗口被最小化,则showCmd元为SHOWMINIMIZED,除此之外为SHOWNORMN,WINDOWPLACEMENT长度单元必须置为sizeOf( WINDOWPLACEMENT),如果参数设置不正确,函数返回FALSE。查看设置窗口位置坐标的正确信息,参看WINDOWPLACEMENT。
速查:Windows Nt:3.1以上版本:Windows:95以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:User32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindowRect
函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。
函数原型:BOOL GetWindowRect(HWND hWnd,LPRECTlpRect);
参数:
hWnd:窗口句柄。
lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。
返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE:1.0以上版本;头文件:Winuser.h;库文件:User32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindowText
函数功能:该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控制,则拷贝控制的文本。但是,GetWindowTeXt不能接收在其他应用程序中的控制文本。
函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);
参数:
hWnd:带文本的窗口或控制的句柄。
IpString:指向接收文本的缓冲区的指针。
nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。
返回值:如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。
函数不能返回在其他应用程序中的编辑控制的文本。
备注:如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控制发送WM_GETTEXT消息。如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowTeXt返回窗口的标题文本,如果窗口无标题,则函数返回空字符串。
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib:Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
IsChild
函数功能:该函数测试一个窗口是否是指定父窗口的子窗口或后代窗口。如果该父窗口是在父窗口的链表上则子窗口是指定父窗口的直接后代。父窗口链表从原始层叠窗口或弹出窗口一直连到该子窗口。
函数原型:BOOL IsChild(HWND hWndParant,HWND hWnd);
参数:
hWndparant:父窗口句柄。
hWnd:将被测试的窗口句柄。
返回值:如果窗口是指定窗口的子窗口或后代窗口,则退回值为非零。如果窗口不是指定窗口的子窗口或后代窗口,则退回值为零。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindowTextLent
函数功能:该函数返回指定窗口的标题文本(如果存在)的字符长度。如果指定窗口是一个控制,函数将返回控制内文本的长度。但是GetWindowTextLength函数不能返回在其他应用程序中的控制的文本长度。
函数原型:nit GetWindowTextLent(HWND hWnd);
参数:
hWnd:窗口或控制的句柄。
返回值:如果函数成功,返回值为文本的字符长度。在一定的条件下,返回值可能比实际的文本长度大。请参看说明。如果窗口无文本,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:如果目标窗口属于当前进程,GetWindowTextLength函数给指定的窗口或控制发送WM_GETTEXT消息。
在一定的条件下,函数GetWindowTextLength的返回值可能比实际的文本长度大。这是由于ANSI和Unlcode的混和使用以及系统允许DBCS字符在文本内存在的原因,但是函数返回值要至少与文本的实际长度相等,因此可以利用这一点指导缓存区的分配。在应用程序既使用ANSI函数又使用Unicode的普通对话框时就会有缓存分配的问题;同样,当应用程序在一个Unicode的窗口过程中使用了ANSI的GetWindowTextLength函数,或在一个ANSI的窗口过程中使用了Unicode的GetWindowTextLength函数的时候也有缓存分配的问题。查看ANSI和Vnicode函数,参考Wind32函数prototypes。
要获得文本的实际长度,使用WM_GETTEXT, LB_GETTEXT或CB_GETLBTBTEXT消息或GetWindowText函数。
速查:Windows NT:3.1以上版本:Windows:95以上版本:Windows CE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib;Unicode:在Windows NT上实现为山Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
GetWindowThreadProcessld
函数功能:该函数返回创建指定窗口线程的标识和创建窗口的进程的标识符,后一项是可选的。
函数原型;DWORD GetWindowThreadProcessld(HWND hwnd,LPDWORD lpdwProcessld);
参数:
hWnd:窗口句柄。
lpdwProcessld:接收进程标识的32位值的地址。如果这个参数不为NULL,GetWindwThreadProcessld将进程标识拷贝到这个32位值中,否则不拷贝。
返回值:返回值为创建窗口的线程标识。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件;user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
IsIconic
函数功能:该函数确定给定窗口是否是最小化(图标化)的窗口。
函数原型:BOOL IsIconic(HWND hWnd);
参数:
hWnd:被测试窗口的句柄。
返回值:如果窗口已图标化,返回值为非零;如果窗口未图标化,返回值为零。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持;头文件:winuser.h;
库文件:user32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
isWindow
函数功能:该函数确定给定的窗口句柄是否识别一个已存在的窗口。
因数原型:BOOL isWindow(HWND hWnd);
参数:
hWnd:被测试窗口的句柄。
返回值:如果窗口句柄标识了一个已存在的窗口,返回值为非零;如果窗口句柄未标识一个已存在窗口,返回值为零。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuserhs;库文件:User32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
lswindowUnicode
函数功能:该函数确定指定的窗口是否是一个本地Unicode窗口。
函数原型: BOOL lswindowUnicode(HWND hwndJ;
参数:
hWnd:被测试窗口的句柄。
返回值:如果窗口是一个本地Unicode窗口,返回值为非零;如果窗口不是一个本地Unicode窗口,返回值为零,同时说明窗口是一个ANSI窗口。
备注;一个窗口的字符集是由函数RegosterClass决定的。如果窗口类是以ANSI版的RegisterClass ( RegjsterClassA)注册的,则窗口字符集是ANSI的;如果窗口类是以Unicode版的Registerclass( RegisterClassW)注册的,则窗口字符集是Unicode。
系统为窗口消息自动作Unicode和ANSI的双向翻译。例如,如果一个使用Unicode字符集的窗口测到一个ANSI窗口消息,则系统在调用窗口过程之前先将该消息转换为Unicode消息。系统调用lsWindowUnicode函数决定是否翻译消息。
速查:Windows NT:3.1以上版本;Windows: 95以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
IsWindowVisible
函数功能:该函数获得给定窗口的可视状态。;
函数原型:BOOL IsWindowVisible(HWND hWnd);
参数;
hWnd:被测试窗口的句柄。
返回值:如果指定的窗口及其父窗口具有WS_VISIBLE风格,返回值为非零;如果指定的窗口及其父窗口不具有WS_VISIBLE风格,返回值为零。由于返回值表明了窗口是否具有Ws_VISIBLE风格,因此,即使该窗口被其他窗口遮盖,函数返回值也为非零。
备注:窗口的可视状态由WS_VISIBLE位指示。当设置了WS_VISIBLE位,窗口就可显示,而且只要窗口具有WS_VISIBLE风格,任何画在窗口的信息都将被显示。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
IsZoomed
函数功能:该函数确定窗口是否是最大化的窗口。
函数原型:BOOL IsZoomed(HWND hWnd);
参数:
hWnd:被测试窗口的句柄。
返回值:如果窗口己最大化,则返回值为非零;如果窗口未最大化,则返回值为零。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持;头文件:Winuer.h;库文件:User32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
MoveWindow
函数功能:该函数改变指定窗口的位置和尺寸。对于顶层窗口,位置和尺寸是相对于屏幕的左上角的:对于子窗口,位置和尺寸是相对于父窗口客户区的左上角坐标的。
函数原型:BOOL MoveWindow(HWND hWnd.int x.int y,int nWidth,int nHeight,BOOL BRePaint);
参数:
hWnd:窗口句柄。
x:指定窗口的新位置的左边界。
Y:指定窗口的新位置的顶部边界。
nWidth:指定窗口的新的宽度。
nHaight:指定窗口的新的高度。
bRepaint:确定窗口是否被刷新。如果该参数为TRUE,窗口接收一个WM_PAINT消息;如果参数为FALSE,不发生任何刷新动作。它适用于客户区,非客户区(包括标题栏和滚动条),及由于移动子窗口而露出的父窗口的区域。如果参数为FALSE,应用程序就必须明确地使窗口无效或重画该窗口和需要刷新的父窗口。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:如果bRepaint为TRUE,系统在窗口移动后立即给窗口过程发送WM_PAINT消息(即由MoveWindow函数调用UPdateWindow函数)。如果bRepaint 为FALSE,系统将WM_PAINT消息放在该窗口的消息队列中。消息循环只有在派遣完消息队列中的其他消息时才派遣WM_PAINT消息。
MoveWindow给窗口发送WM_WfNOWPOSCHANGING,WM_WINDOWPOSCHANGED,WM_MOVE,WM_SIZE和WM_NCCALCSIZE消息,
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE:1.0以上版本:头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Openlcon
函数功能:该函数将一个最小化窗口恢复到原来的位置和尺寸并且激活该窗口。
函数原型:BOOL Openlcon(HWNDhWnd);
参数:
hWnd:被恢复与激活的窗口的句柄。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:Openlcon向给出的窗口发送WM_QUERYOPEN消息。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:不支持:头文件:winuser.h;库文件:user32.lib。
SetForegroundWindow
函数功能:该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。
函数原型:BOOL SetForegroundWindow(HWND hWnd)
参数:
hWnd:将被激活并被调入前台的窗口句柄。
返回值:如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零。
备注:前台窗口是z序顶部的窗口,是用户的工作窗口。在一个多任务优先抢占环境中,应让用户控制前台窗口。
Windows NT
5.0:当用户在另一个窗口中工作时,应用程序不能强行设置一个窗口到前台。相反,SetForeground函数将会激活窗口并且调用FlashWindowEx函数通知用户。
Windows CE:拥有窗口的线程不具有优先启动权。
速查:Windows NT;3.1以上版本;Windows;95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetPalrent
函数功能:该函数改变指定子窗口的父窗口。
函数原型:HWND SetPalrent(HWND hWndChild,HWND hWndNewParent);
参数:
hWndChild:子窗口句柄。
hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。在WindowsNT5.0中,如果参数为HWND_MESSAGE,则子窗口成为消息窗口。
返回值:如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。若想获得多错误信息,请调用GetLastError函数。
备注:应用程序可以使用SetParent函数来设置弹出式窗口,层叠窗口或子窗口的父窗口。新的窗口与窗口必须属于同一应用程序。
如果参数hWndChild标识的窗口是可见的,系统将执行适当的重画和刷新动作。
由于兼容的原因,对于将改变父窗口的子窗口,SetParent函数并不改变该子窗口的WS_CHILO
WS_POPUP风格。所以,如果hWndNewParent参数为NULL,就应在调用SetParent函数之后清空WS_CHILD位并且设置为WS_POPUP风格。相反的,如果hWndNewParent参数不为NULL并且在此之前窗口是桌面窗口的子窗口,就应在调用SetParent函数之前清空WS_POPUP位井设置WS_CHILD风格。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetWindowLong
函数功能:该函数改变指定窗口的属性。函数也将在指定偏移地址的一个32位值存入窗口的额外窗口存。
函数原型:LONG SetWindowLong(HWN hWnd,int nlndex.LONG dwNewLong);
参数:
hWnd:窗口句柄,及间接声明的该窗口所属的类。
nlndex:给出了要设置的值的零起点的偏移地址。有效值为从0到额外窗口存储空间的字节数一4。例如
如果指定了12位或更多位字节的额外内存,则32位值的索引值应为第3个32位值的索引位8。设置其他值,要指定下列中的一个值:
GWL_EXSTYLE;设置一个新的扩展窗口风格。GWL_STYLE:设置一个新的窗口风格。
GWL_WNDPROC:为窗口过程设置一个新的地址。
GWL_HINSTANCE:设置一个新的应用程序事例句柄。GWL_ID:为窗口设置一个新的标识。
GWL_USERDATA:设置与窗口有关的32位值。每个窗口都有一个对应的32位值供创建该窗口的应用程序使用。
当hWnd参数标识了一个对话框是可使用下列值的:
DWL_DLGPROC:设置对话框过程的新地址。
DWL_MSGRESULT:设置在对话框过程中处理的消息返回值。
DWL_USER:设置新的额外信息,该信息仅为应用程序所有,例如句柄或指针。
dWNewLong:指定替换值。
返回值:如果函数成功,返回值为给定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
如果给定的32位值的原来的值是0,并且函数成功,则返回值为0。但是这时函数并不清除最后的错误信息,这就很难判断函数成功与否。这时,就应在调用SetWindowLong之前调用calingsetLastEm函数清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError也返回一个非零值。
备注:如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。指定的窗日数据是在缓存中保存的,因此在调用SetWindowLong之后再调用SetWindowPos函数才O
SetWindowLong函数所作的改变生效。
如果使用带GWL_WNDPROC索引值的SetWindowLong函数替换窗口过程,则该窗日过程必须WindowProc回调函数说明部分指定的指导行一致。
如果使用带DWL_MSGRESULT索引值的SetWlndowLong函数来设置由一个对话框处理的消息的和值,应在此后立即返回TRUE。否则,如果又调用了其他函数而使对话框过程接收到一个窗口消息,返回值:如果函数成功,返回值为给定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
如果给定的32位值的原来的值是0,并且函数成功,则返回值为0。但是这时函数并不清除最后的错误信息,这就很难判断函数成功与否。这时,就应在调用SetWindowLong之前调用calingsetLastEm函数清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError也返回一个非零值。
备注:如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。
指定的窗口数据是在缓存中保存的,因此在调用SetWindowLong之后再调用SetWindowPos函数才O
SetWindowLong函数所作的改变生效。
如果使用带GWL_WNDPROC索引值的SetWindowLong函数替换窗口过程,则该窗日过程必须WindowProc回调函数说明部分指定的指导行一致。
如果使用带DWL_MSGRESULT索引值的SetWlndowLong函数来设置由一个对话框处理的消息的和值,应在此后立即返回TRUE。否则,如果又调用了其他函数而使对话框过程接收到一个窗口消息,套的窗口可能消息可能改写使用DWL_MSGRESULT设定的返回值。
可以使用带GWL_WNDPROC索引值的SetWindowLohg函数创建一个窗口类的子类,该窗口类是用于创建该窗口的类。一个应用程序可以一个系统类为子类,但是不能以一个其他进程产生的窗口类为于类。
SetWindowLong函数通过改变与一个特殊的窗口类相联系的窗口过程来创建窗口子类。从而使系统调用新的窗口过程而不是以前定义的窗口过程。应用程序必须通过调用CallWindowProc函数向前窗口传递未被新窗口处理的消息。允许应用程序创建一个窗口过程链。可以通过对RegisterClassEx函数中使用的WNDCLASSEX结构的chWndExtra单元指定一个非零值来保留额外窗口内存。
不能通过调用带GWL_HWNDPARENT索引值的SetWindowLong的函数来改变子窗口的父窗口。应使用SetParent函数。
WindowsCE:nlndex参数必须是4个字节的倍数;不支持Unaligned access。
不支持下列nlndex参数值:
GWL_HINSTANCE;GWL_HWNDPARENT;GWL_USERDATA
WindowsCE2.0版支持在索引参数中的DWL_DLGPROC值,但是WindowsCE1.0不支持。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:库文件:user32.lib;
Unicode;在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetwlndowPlacement
函数功能:该函数设置指定窗口的显示状态和恢复,最大化,最小化位置。
函及原型;BOOL SetwlndowPlacement(HWND hWnd,CONST WINDOWPLACEMENT★lpwndpl);
参数:
hWnd:窗口句柄。
lpwndpl:指向一个WINDOWPLACEMWNT结构的指针,该结构给出了新的显示状态和窗口位置。
在调用函数SetWindowPlacement之前,将WINDOWPLACEMWNT结构的长度单元置为sizeof(WINDOWPLACEMENT)。如果lpwndpl->length设置不正确,函数SetWindowPlacement将失败。
返回值:如果函数成功,返回值为非零。如果函数失败,返回值为零。若想获得更多错误信息,请调用callGetLastErro函数。
备注:如果在WIDNOWPLACEMENT中指定的信息使窗口完全显示在屏幕之外,系统自动调整坐标以使窗口可见,兼顾屏幕设置和多种监视器配置。
WINDOWPLACEMENT的长度成员信息设置为sizeof(WINDOWPLACEMENT),如果设置不正确,函数将返回FLASE。查看窗口位置坐标的信息,参看WINDOWPLACEMENT。
速查:Windows NT:3.1以上版本;Windows;95以上版本;Windows
CE:不支持;头文件;winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetWindowPos
函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。
函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int
cy,UNIT.Flags);
参数:
hWnd:窗口句柄。
hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一:
HWND_BOTTOM:将窗口置于Z序的底部。如果参数hWnd标识了一个顶层窗口,则窗口失去顶级位置,并且被置在其他窗口的底部。
HWND_DOTTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。如果窗口己经是非顶层窗口则该标志不起作用。
HWND_TOP:将窗口置于Z序的顶部。
HWND_TOPMOST:将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置。
查看该参数的使用方法,请看说明部分。
x:以客户坐标指定窗口新位置的左边界。
Y:以客户坐标指定窗口新位置的顶边界。
cx:以像素指定窗口的新的宽度。
cy:以像素指定窗口的新的高度。
uFlags:窗口尺寸和定位的标志。该参数可以是下列值的组合:
SWP_ASNCWINDOWPOS:如果调用进程不拥有窗口,系统会向拥有窗口的线程发出需求。这就防止调用线程在其他线程处理需求的时候发生死锁。
SWP_DEFERERASE:防止产生WM_SYNCPAINT消息。
SWP_DRAWFRAME:在窗口周围画一个边框(定义在窗口类描述中)。
SWP_FRAMECHANGED:给窗口发送WM_NCCALCSIZE消息,即使窗口尺寸没有改变也会发送该消息。如果未指定这个标志,只有在改变了窗口尺寸时才发送WM_NCCALCSIZE。
SWP_HIDEWINDOW;隐藏窗口。
SWP_NOACTIVATE:不激活窗口。如果未设置标志,则窗口被激活,并被设置到其他最高级窗口或非最高级组的顶部(根据参数hWndlnsertAfter设置)。
SWP_NOCOPYBITS:清除客户区的所有内容。如果未设置该标志,客户区的有效内容被保存并且在窗口尺寸更新和重定位后拷贝回客户区。
SWP_NOMOVE:维持当前位置(忽略X和Y参数)。
SWP_NOOWNERZORDER:不改变z序中的所有者窗口的位置。
SWP_NOREDRAW:不重画改变的内容。如果设置了这个标志,则不发生任何重画动作。适用于客户区和非客户区(包括标题栏和滚动条)和任何由于窗回移动而露出的父窗口的所有部分。如果设置了这个标志,应用程序必须明确地使窗口无效并区重画窗口的任何部分和父窗口需要重画的部分。
SWP_NOREPOSITION;与SWP_NOOWNERZORDER标志相同。
SWP_NOSENDCHANGING:防止窗口接收WM_WINDOWPOSCHANGING消息。
SWP_NOSIZE:维持当前尺寸(忽略cx和Cy参数)。
SWP_NOZORDER:维持当前Z序(忽略hWndlnsertAfter参数)。
SWP_SHOWWINDOW:显示窗口。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误消息,请调用GetLastError函数。
备注:如果设置了SWP_SHOWWINDOW和SWP_HIDEWINDOW标志,则窗口不能被移动和改变大小。如果使用SetWindowLoog改变了窗口的某些数据,则必须调用函数SetWindowPos来作真正的改变。使用下列的组合标志:SWP_NOMOVEISWP_NOSIZEISWP_FRAMECHANGED。
有两种方法将窗口设为最顶层窗口:一种是将参数hWndlnsertAfter设置为HWND_TOPMOST并确保没有设置SWP_NOZORDER标志;另一种是设置窗口在Z序中的位置以使其在其他存在的窗口之上。当一个窗口被置为最顶层窗口时,属于它的所有窗口均为最顶层窗口,而它的所有者的z序并不改变。
如果HWND_TOPMOST和HWND_NOTOPMOST标志均未指定,即应用程序要求窗口在激活的同时改变其在Z序中的位置时,在参数hWndinsertAfter中指定的值只有在下列条件中才使用:
在hWndlnsertAfter参数中没有设定HWND_NOTOPMOST和HWND_TOPMOST标志。
由hWnd参数标识的窗口不是激活窗口。
如果未将一个非激活窗口设定到z序的顶端,应用程序不能激活该窗口。应用程序可以无任何限制地改变被激活窗口在Z序中的位置,或激活一个窗口并将其移到最高级窗口的顶部或非最高级窗口的顶部。
如果一个顶层窗口被重定位到z序的底部(HWND_BOTTOM)或在任何非最高序的窗口之后,该窗口就不再是最顶层窗口。当一个最顶层窗口被置为非最顶级,则它的所有者窗口和所属者窗口均为非最顶层窗口。
一个非最顶端窗口可以拥有一个最顶端窗口,但反之则不可以。任何属于顶层窗口的窗口(例如一个对话框)本身就被置为顶层窗口,以确保所有被属窗口都在它们的所有者之上。
如果应用程序不在前台,但应该位于前台,就应调用SetForegroundWindow函数来设置。
Windows
CE:如果这是一个可见的顶层窗口,并且未指定SWP_NOACTIVATE标志,则这个函数将激活窗口、如果这是当前的激活窗口,并且指定了SWP_NOACTIVATE或SWP_HIDEWINDOW标志,则激活另外一个可见的顶层窗口。
当在这个函数中的nFlags参数里指定了SWP_FRAMECHANGED标志时,WindowsCE重画窗口的整个非客户区,这可能会改变客户区的大小。这也是重新计算客户区的唯一途径,也是通过调用SetwindowLong函数改变窗口风格后通常使用的方法。
SetWindowPos将使WM_WINDOWPOSCHANGED消息向窗口发送,在这个消息中传递的标志与传递给函数的相同。这个函数不传递其他消息。
Windows CE 1.0不支持在hWndlnsertAber参数中的HWND_TOPMOST和HWND_NOTOPMOST常量。
Windows CE1.0不支持在fuFags参数中的SWP_DRAWFRAME和SWP_NOCOPYBITS标志。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h库文件:eser32lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetWindowText
函数功能:该函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。如果指定窗口是一个控制,则改变控制的文本内容。然而,SetWindowText函数不改变其他应用程序中的控制的文本内容。
函数原型:BOOL SetWindowText(HWND hwnd,LPCTSTR lpStrjng);
参数:
hWnd:要改变文本内容的窗口或控制的句柄。
lpString:指向一个空结束的字符串的指针,该字符串将作为窗口或控制的新文本。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:如果目标窗口属于当前进程,SetWindowText函数会使WM_SETTEXT消息发送给指定的窗口或控制。然而,如果控制是以WS_CAPTION风格创建的列表框控制,SetWindowText函数将为控制设置文本,而不是为列表项设置文本。
SetWindowText函数不扩展tab字符(ASCII代码0×09),Tab字符以字符‘}’来显示。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件;winuser.h;库文件:user32.lib;Unicode:Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowOwnedPopups
函数功能:该函数显示或隐藏属于指定窗口的所有弹出式窗口。
函数原型:BOOL ShowOwnedPopups(HWND hWnd;BOOL fshow);
参数:
hWnd:拥有弹出式窗口的窗口句柄,这些弹出式窗口将被显示或隐藏。
fShow:指明弹出式窗口是被显示还是隐藏。如果该参数为TRUE,则所有隐藏的弹出式窗口均被显示;如果该参数为FALSE,则所有显示的弹出式窗口均被隐藏。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:ShowOwnedPopups函数仅显示由以前调用ShowOwnedPopups隐藏的窗口。例如,如果弹出式窗口由调用ShowWinodw函数隐藏,则在随后调用ShowOwnedPopups(将fShow参数置为TRUE)并不能使窗口显示出来。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:Winuser.h;库文件:user32.Lib
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowWindow
函数功能:该函数设置指定窗口的显示状态。
函数原型:BOOL ShowWindow(HWND hWnd,int nCmdShow);
参数:
hWnd:窗口句柄。
nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。在随后的调用中,该参数可以为下列值之一:
SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。
SW_MIOE:隐藏窗口并激活其他窗口。
SW_MAXIMIZE:最大化指定的窗口。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。
SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。
SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO
结构是由启动应用程序的程序传递给CreateProcess函数的。
SW_SHOWMAXIMIZED:激活窗口并将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其最小化。
SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然维持激活状态。
SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。
返回值:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。
备注:应用程序第一次调用ShowWindow时,应该使用WinMain函数的nCmdshow参数作为它的nCmdShow参数。在随后调用ShowWindow函数时,必须使用列表中的一个给定值,而不是由WinMain函数的nCmdSHow参数指定的值。
正如在nCmdShow参数中声明的,如果调用应用程序的程序使用了在STARTUPINFO结构中指定的信息来显示窗口,则在第一次调用ShowWindow函数时nCmdShow参数就被忽略。在这种情况下,ShowWindow函数使用STARTUPINFO结构中的信息来显示窗口。在随后的调用中,应用程序必须调用ShowWindow
函数(将其中nCmdShow参数设为SW_SHOWDEFAULT)来使用由程序调用该应用程序时提供的启动信息。这个处理在下列情况下发生:
应用程序通过调用带WS_VISIBLE标志的函数来创建它们的主窗口函数;
应用程序通过调用清除了WS_VISIBLE标志的CteateWindow函数来创建主窗口函数,并且随后调用带SW_SHOW标志的ShowWindow函数来显示窗口;
Windows CE:nCmdShow参数不支持下列值:
SW_MAXIMINZE;SW_MINIMIZE;SW_RESTORE;SW_SHOWDEFAULT
SW_SHOWMAXIMIZED;SW_SHOWMINIMIZED;SW_SHOWMININOACTIVATE
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows
CE:1.0以上版本;头文件:winuw库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowWindowAsync
函数功能:该函数设置由不同线程产生的窗口的显示状态。
函数原型:BOOL ShowWindowAsync(HWND hWnd,int nCmdshow);
参数:
hWnd:窗口句柄。
nCmdShow:指定窗口如何显示。查看允许值列表,请查阅ShowWlndow函数的说明部分。
返回值:如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零。
备注:这个函数向给定窗口的消息队列发送show-window事件。应用程序可以使用这个函数避免在等待一个挂起的应用程序完成处理show-window事件时也被挂起。
速查:Windows NT:4.0以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
TileWindows
函数功能:该函数并到显示指定父窗口的各指定子窗口。
函数原型;WORD WINAPI TileWindows(HWND hWndParent,UNIT wHow,CONST RECT
★IpRect,UNIT cKidS;ConHWND FAR ★lpKidS);参数:
hWndParent: 窗口句柄。如果该参数为NULL,则假定为桌面窗口。
wHow:指定不参加安排的窗口类型,及是水平并到显示还是或垂直并到显示。该参数可以为下列值之一,可以选择与MDITILE_SKIPDISABLED组合以防止停用的的MDI的子窗口被并到显示:
MDITILE_HORIZONAL:水平并到显示窗口。MDITILE_VERTICAL:垂直并到显示窗口。
IpRect:指向RECT结构的指针,该结构以客户坐标定义矩形区域,在这个区域内排列窗口。如果该参数为NULL,则使用父窗口的客户区。
cKids:指出在lpKidS参数中给出的数组的成员个数。如果lpKids为NULL则该参数被忽略。
lpKids:指向被排列的子窗口的句柄数组的指针。如果该参数为NULL,则指定窗口(或桌面窗口)的所有子窗口均被排列。
返回值:如果函数成功,返回值是被安排的窗口数目;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:调用TileWindows函数使所有最大化的窗口恢复到原来的尺寸。
速查:Windows NT:4.o以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
WindowFromPoint
函数功能:该函数获得包含指定点的窗口的句柄。
函数原型:HWND WindowFromPoint(POINT Point);
参数:
Point:指定一个被检测的点的POINT结构。
返回值S:返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控制之上,返回值是在该静态文本控制的下面的窗口。
备注:WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。应用程序应该使用ChildWindowFromPoint函数进行无限制查询。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows
CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
WinMain
函数功能:该函数被系统调用,作为一个32位应用程序的入口点。
函数原型:int WINAPI WinMain(HINSTANCEE hlnstance,HINSTANCE hPrelnstance,LPSTR
lpCmdLine,int nCmdShow);
参数;
hinstance:应用程序当前事例的句柄。
hPrelnstance:应用程序的前事例的句柄。对于一个32的位程序,该参数总为NULL。
如果需要检测另外一个事例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回
ERROR_ALREADY_EXISTS,这就表明在应用程序中有另外一个事例存在,因为它首先创建了互斥名。
lpCmdLine:指向应用程序命令行的空字符串的指针,不包括函数名。获得整个命令行,参看GetCommandLine。
nCmdShow:指明窗口如何显示。该参数可以是下列值之一:
SW_HIOE:隐藏窗口并且激活另外一个窗口。
SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。
SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。
SW_SHOWMAXIMIZED:激活窗口并且将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其目标化。
SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。
SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。
SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。
SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。
返回值:如果函数成功,当它接收到一个WM_QUIT消息时就中止,函数应该返回在该消息的wParam参数的退出值。如果函数在进入消息循环时退出,应该返回零。
备注:WinMain函数应初始化应用程序,显示主窗口,进入一个消息接收一发送循环,这个循环是应用程序执行的其余部分的顶级控制结构。当接收到一个WM_QUIT消息时,程序就中止。这时,WinMain函数应退出应用程序,并且返回传递给WM_QUIT消息的wParam参数的值。如果由于调用PostQuitMessage函数而接收到WM_QUIT消息,wParam的值是PostQuiMessage函数的nExitCode的值。请参看“创建一个窗口循环”。
ANSI应用程序可以使用WinMain函数的lpCmdLine参数进入命令行字符串(除了程序名之外)。WinMain不能返回Unicode字符串的原因是IpCmdLine使用的是LPSTR数据类型,而不是LPTSTR类型。GetCommandLine函数可以用于进入命令行的Unicode字符串,因为它使用的是LPTSTR类型。
Windows CE:Windows CE不支持下列 nCmdLine参数值:
SW_MINIMIZE;SW_RESTORE;SW_RESTORE;SW_SHOWMAXMIZED
SW_SHOWMINIMIZED;SW_SHOWMINNOACTIVE
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows
CE:1.0以上版本;头文件:Winbase.h库文件:用户自定义。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
AnyPopup
函数功能:该函数指出一个被属窗口,可见窗口,顶级弹出窗口,或层叠窗日是否在屏幕上存在。这个函数搜索整个屏幕,而不仅仅搜索应用程序的客户区。
函数原型:BOOL AnyPopup(VOID)
参数:无。
返回值:如果一个弹出式窗口存在,返回值为非零,即使该窗口被其他窗口完全覆盖。如果弹出式窗口不存在,返回值为零。
备注:函数不检测无所属关系的弹出式窗口,或无WS_VISIBLE设置位的窗口。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:USer32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
GetClasslnfoEx
函数功能:该函数获得有关窗口类的信息,包括与窗口类相关的小图标的句柄的信息。GetClasslnfo函数不检索小图标的句柄。
函数原型:BOOL GetClasslnfoEx(HINSTANCE hlnst,LPCTSTR lpszClass,LPWNDCLASSEX
lpwcx);
参数 :
hlnst:创建类的应用程序的事例的句柄。获得由系统定义的类(如按钮或列表框)的信息,设置该参数为NULL。
IpszClass :指向一个包含类名的空结束的字符串的指针。类名必须为事先己注册的类,或是由此前调用 RegisterClaaEx
函数注册的类。或者还可以是一个整型数,如果参数是一个整型数,它必须是由以前调用GlobaAdd原子函数创建的全局原子。这个16位整型数小于OXCOOO,必须是lpszClassS的低16位,其高位字为
0。
Ipwcx:指向接收类信息的WNDCLASSEX结构的指针。
返回值:如果函数未发现一个匹配的类,并且成功地拷贝了数据,则返回值为0。若想获得更多错误信息,请调用 GetLastError函数。
速查:Windows NT:35以上版本;Windows:95以上版本:Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode: 在Windows NT 上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetClassLong
函数功能:该函数返回与指定窗口相关的WNDCLASSEX结构的指定32位值。
函数原型:DWORD GetClassLong(HWND hWnd,int nlndex);
参数:
hWnd:窗口句柄间接给出的窗口所属的类。
nlndex:指定要恢复的32位值。从额外的类存储空间恢复一个32位的值,指定的一个大于等于0的被恢复值的偏移量。有效值为从0开始到额外类存储空间字节数一4。例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要从WNDCLASSEX结构中恢复任何值,需要指定下面值之一:
GCSW原子:获得一个唯一标识窗口类的原子值,该值与RegisterClassEx函数的返回值相同。
GCL_CBWNDEXTRA:获得与类中的每个窗口相关的额外窗口中内存空间的字节大小,进入该存储空间的方法请参看GetWindwoLong。
GCL_HBRBACKGROUND:获得与类有关的背景刷子的句柄。
GCL_HCURSOR:获得与类有关的光标的句柄。
GCL_HICON:获得与类有关的图标的句柄。
GCL_HICONSM:获得与类有关的小图标的句柄。
GCL_HMOUDLE:获得注册该类的模块的句柄。
GCL_MENUNAME:获得菜单名字符串的地址,该字符串标识了与类有关的菜单资源。
GCL_STYLE:获得窗口类的风格位。
GCL_WNDRPOC:获得与类有关的窗口过程的地址。
返回值:如果函数成功,返回值是所需的32位值;如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注:通过使用函数RegisterClassEx将结构WNDCLASSEX中的cbCIsExtra单元指定为一个非O值来保留额外类的存储空间。Windows
CE:nlndex参数是一个字节偏移量,但是必须为 4的倍数。Windows CE不支持unaligned
access。nlndex参数中只可设定为GCL_HICON和GCL_STYLE。如果使用了Windows CE的
lconsurs组件,该组件支持在适当的目标平台上的鼠标,也可以在nlndex中使用GCL_HCURSOR。 注意支持鼠标的 Windows CE版本包含
Iconcurs和 Mcursor而不是 Icon和 Cursor组件。
速查:Wiodows NT:3.1以上版本;Windows:95以上版本:Windows
CE:1.0以上版本:头文件:Winuser.h;库文件:USer32.lib:Unicode:在 Windows NT上实现为
Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = GetClassName
函数功能:该函数获得指定窗口所属的类的类名。
函数原型:Int GetClassName(HWND hWnd,LPTSTR IpClassName int nMaxCount);参数:
hWnd:窗口的句柄及间接给出的窗口所属的类。
IpClassName:指向接收窗口类名字符串的缓冲区的指针。
nMaxCount:指定由参数lpClassName指示的缓冲区的字节数。如果类名字符串大于缓冲区的长度,则多出的部分被截断。
返回值:如果函数成功,返回值为拷贝到指定缓冲区的字符个数:如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows
CE1.0以上版本;头文件:winuser.h库文件:user32.lib; Unicode:在 Windows NT上实现为 Unicode和
ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
GetWindowLong
函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。
函数原型:LONG GetWindowLong(HWND hWnd,int nlndex);
参数:
hWnd:窗口句柄及间接给出的窗口所属的窗口类。
nlndex:指定要获得值的大于等于0的值的偏移量。有效值的范围从0到额外窗口内存空间的字节数一4例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要获得任意其他值,指定下列值之一:
GWL_EXSTYLE;获得扩展窗日风格。
GWL_STYLE:获得窗口风格。
GWL_WNDPROC:获得窗口过程的地址,或代表窗口过程的地址的句柄。必须使用GWL_WNDPROC函数调用窗口过程。
GWL_HINSTANCE:获得应用事例的句柄。
GWL_HWNDPAAENT:如果父窗口存在,获得父窗口句柄。
GWL_ID:获得窗口标识。
GWL_USERDATA:获得与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。
在hWnd参数标识了一个对话框时也可用下列值:
DWL_DLGPROC:获得对话框过程的地址,或一个代表对话框过程的地址的句柄。必须使用函数CallWindowProc来调用对话框过程。
DWL_MSGRESULT:获得在对话框过程中一个消息处理的返回值。
DWL_USER:获得应用程序私有的额外信息,例如一个句柄或指针。
返回值:如果函数成功,返回值是所需的32位值;如果函数失败,返回值是0。若想获得更多错误信息请调用 GetLastError函数。
备注:通过使用函数RegisterClassEx将结构WNDCLASSEX中的cbWndExtra单元指定为一个非0值来保留额外类的存储空间。
Windows CE:nlndex参数指定的字节偏移量必须为 4的倍数。不支持 unaligmned access。
Windows CE:不支持在参数nlndex中设定的GWL_HINSTANCE和GWL_HWNDPARENT。
Windows CE1.0也不支持在 nlndex参数中的 DWL_DLGPROC和 GWL_USERDATA。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0对以上版本;头文件:winuser.h;库文件:user32.lib;在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
RegisterClassEX
函数功能:该函数为随后在调用Createwindow函数和CreatewindowEx函数中使用的窗口注册一个窗口类。
函数原型:ATON RegisterClassEX(CONST WNDCLASSEX★Ipwcx);
参数:
Ipwcx:指向一个WNDCLASSEX结构的指针。在传递给这个函数之前,必须在结构内填充适当的类的属性返回值:如果函数成功,返回值是唯一识别被注册类的一个原于;如果函数失败,返回值为0。若想获得更多错误信息,请调用callGetLastError函数。
备注:如果使用RegisterClassEx来注册窗口类,应用程序通知系统被注册类的窗回的消息使用ANSI字符集的文本和字符参数;如果使用RegisterClassExW来注册窗口类,应用程序需要系统以Unicode来传递消息的文本参数。IsWindowUnicode函数使应用程序可以查询每一个窗口的字符特征。参看
Win32 API中的ANSI和Unicode函数,请查阅 Functiont prototype(函数原型)。
应用程序注册的所有的窗口类在应用程序中止后都为未注册的类。
Windows 95:所有由DLL注册的类在DLL卸载后均未注册的类。
Windows NT:所有由DLL注册的类在DLL卸载后仍为已注册的类。
Windows
95:如果WNDCLASSEX结构中的cbWndEXtra或cbCIsEXtra单元包含字节数超过40个字节,则RegisterClassEx将失败。
速查:Windows NT:4.0以上版本;Windows:95以上版本;Windows
CE:不支持:头文件:winuser.h;库文件:user32.lib; Unicode:在 Windows NT上实现为 Unicode和 ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
SetClassLong
函数功能:该函数替换在额外类存储空间的指定偏移地址的32位长整型值,或替换指定窗口所属类的WNDCLASSEX结构。
函数原型:DWORD SetClassLong(HWND hWnd,int nlndex,LONG dwNewLong);
参数:
hWnd:窗口句柄及间接给出的窗口所属的类。
nlndex:指定将被替换的32位值。在额外类存储空间中设置32位值,应指定一个大于或等于0的偏移量。
有效值的范围从0到额外类的存储空间的字节数一4;例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要设置WNDCLASSEX结构中的任何值,指定下面值之一:
GCL_CBCLSEXTRA:设置与类相关的尺寸的字节大小。设定该值不改变己分配的额外字节数。
GCL_CBWNDEXTRA:设置与类中的每一个窗口相关的尺寸的字节大小。设定该值不改变已分配额外字节数。查看如何进入该内存,参看SetWindowLOng。
GCL_HERBACKGROUND:替换与类有关的背景刷子的句柄。
GCL_HCURSOR:替换与类有关的光标的句柄。GCL_HICON:替换与类有关的图标的句柄。
GCL_HMODULE:替换注册类的模块的句柄。GCL_STYLE:替换窗口类的风格位。
CGL_MENUNAME :替换菜单名字符串的地址。该字符串标识与类有关的菜单资源。
GCL_WNDPROC :替换与窗口类有关的窗口过程的地址。
dwNewLong:指定替换值。
返回值:如果函数成功,返回值是指定的32位整数的原来的值;如果未事先设定,返回值为0。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注;如果使用SetClassLong函数和GCL_WNDPROC索引值来替换窗口过程,窗口过程必须与WindowProccallback函数中的描述的guideline一致。
以带GCL_WNDPROC索引值的SetClassLong函数创建的一个窗口类的的子类将会影响所有随后以该类创建的窗口。应用程序可以创建一个系统类的子类,但是不能创建由其他进程创建的类的子类。
通过使用RegisterClassEx函数将WNDCLASSEX结构中的cbWndExtra单元指定为一个非零值来保留额外的的类存储空间。
小心使用SetClassLong函数。例如,可以通过使用SetClassLong来改变类的背景颜色,但是这个改变Windows
CE:nlndex参数是一个字节偏移量但必须是4的倍数。Unaligned不支持。
不支持在nlndex参数中的标准的CGL_★值,只有一个例外,如果目标设各支持鼠标,则可以在nlndex参数中指定CGL_HCURSOR。
注意支持鼠标的WindowsCE版本包含Iconcurs和Mcursor组件而不是lcon和Cursor组件。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT
上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = SetWindowLong
函数功能:该函数改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。
函数原型:LONG SetWindowLong(HWND hWnd,int nlndex,LONG dwNewLong);
参数:
hWnd:窗口句柄及间接给出的窗口所属的类。
nlndex:指定将设定的大于等于0的偏移值。有效值的范围从0到额外类的存储空间的字节数-4:例如若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要设置其他任何值,可以指定下面值之一:
GWL_EXISTYLE:设定一个新的扩展风格。GWL_STYLE:设定一个新的窗口风格。
GWL_WNDPROC:为窗口过程设定一个新的地址。GWL_ID:设置一个新的窗口标识符。
GWL_HINSTANCE:设置一个新的应用程序事例句柄。
GWL_USERDATA:设置与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。
当hWnd参数标识了一个对话框时,也可使用下列值:
DWL_DLGPROC:设置对话框过程的新地址。
DWL_MSGRESULT:设置在对话框过程中处理的消息的返回值。
DWL_USER:设置的应用程序私有的新的额外信息,例如一个句柄或指针。
dwNewLong:指定的替换值。
返回值:如果函数成功,返回值是指定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
如果指定32位整数的原来的值为0,并且函数成功,则返回值为0,但是函数并不清除最后的错误信息,这就很难判断函数是否成功。这时,就应在调用SetWindowLong之前调用callingSetLastError(0)函数来清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError。也返回一个非零值。
备注;如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。
指定的窗口数据是在缓存中保存的,因此在调用SetWindowLong之后再调用SetWindowPos函数才能使SetWindowLong函数所作的改变生效。
如果使用带GWL_WNDPROC索引值的SetWindowLong函数替换窗口过程,则该窗口过程必须与WindowProccallback函数说明部分指定的指导行一致。
如果使用带DWL_MSGRESULT索引值的SetWindowLong函数来设置由一个对话框过程处理的消息的返回值,应在此后立即返回TRUE。否则,如果又调用了其他函数而使对话框过程接收到一个窗口消息,则嵌套的窗口消息可能改写使用DWL_MSGRESULT设定的返回值。
可以使用带GWL_WNDPROC索引值的SetWindowLong函数创建一个窗口类的子类,该窗口类是用于创建该窗口的关。一个应用程序可以一个系统美为于类,但是不能以一个其他进程产生的窗口类为子类,SetwindowLong函数通过改变与一个特殊的窗口类相联系的窗口过程来创建窗口子类,从而使系统调用新的窗口过程而不是以前定义的窗口过程。应用程序必须通过调用CallWindowProc函数向前窗口传递未被新窗口处理的消息,这样作允许应用程序创建一个窗口过程链。
通过使用函数RegisterClassEx将结构WNDCLASSEX中的cbWndExtra单元指定为一个非0值来保留新外窗口内存。
不能通过调用带GWL_HWNDPARENT索引值的SetWindowLong的函数来改变子窗口的父窗口,应使用SetParent函数。
Windows CE:nlndex参数必须是4个字节的倍数不支持unaligned access。
不支持下列nlndex参数值:。
GWL_HINSTANCE;GWL_HWNDPARENTGWL;GWL_USERDATA
Windows CE 2.0版支持在nlndex参数中的DWL_DLGPROC值,但是WindowsCE1.0不支持。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本:头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
UnRegisterClass
函数功能:该函数删除一个窗口类,清空该类所需的内存。
函数原型:BOOL UnRegisterClass(LPCTSTR IpClassName; HINSTANCE hlnstance);
参数:
IpClassName:指向一个空结束字符串的指针,或是一个整型原子。如果IpClassName是一个字符串,则它指定了窗口类的类名。这个类名必须由此前调用RegisterClassEx函数来注册。系统类,如对话框控制,必须被注册。
如果这个参数是一个整型原子,它必须是由此前调用GlobalAdd原子函数创建的全局原子。这个16位整型数小于OxCOOO,必须是lpszClass的低16位,其高位宇必须为0。
hlnstance:创建类的模块的事例句柄。
返回值:如果函数成功,返回值为非零;如果未发现类或由此类创建的窗口仍然存在,则返回值为0。
若想获得更多错误信息,请调用GetLastError函数。
备注:在调用这个函数之前,应用程序必须销毁由指定类创建的所有窗口。
应用程序注册的所有窗口类在应用程序中止后都为未注册的类。
Windows 95:所有由OLL注册的窗口类在DLL卸载后均未注册的类。
windows NT:所有由DLL注册的类在DLL卸载后仍为已注册的类。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT上实现为Uhicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = GetClasslnfoEx
函数功能:该函数获得有关一个窗口类的信息。GetClasslnfo函数已经由GetClasslnfoEx取代,但是如果不需要获得类的小图标信息.仍然可以使用该函数。
函数原型:BOOL GetClasslnfoEx(HINSTANCE hlnstance,LPCTSTR lpClassName, LPWNDCLASS
lpWndClass);
参数:
hlnstance:创建该类的应用程序的事例句柄。要获得由系统定义的类的信息(例如按钮和列表),将该参数设为NULL。
lpClassName:指向一个包含类名的空结束的字符串的指针。类名必须为事先注册的类,或是由此前调用RegisterClassEx函数注册的类。或者还可以是一个整型数原子,如果参数是一个整型数原子,它必须是由以前调用GlobalAdd原子函数创建的全局原子。这个16位整型数小于OxCOOO,必须是lpszClass的低16位,高位字必须为0。
lpWndClass:指向一个接收类信息的一个WNDCLASS结构的指针。
返回值:如果函数发现了一个匹配的类并且成功地拷贝了字符串,则返回值为非零;如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注:在Windows CE中,如果lpClassName是一个原子,则它必须是从函数RegisterClass返回的原子。
函数功能:该函数在窗口类的额外存储空间中的指定偏移地址获取指定窗口所属窗口类的16位值。不象GCW_原子和GCW_HICONSM,由16位Windows支持的GCW_value己经过时,必须使用函数GetClassLong来获得窗口的类值。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetCassWord
函数原型:WORD GetCassWord(HWND hWnd,int nlndex);
参数:.
hWnd:窗口句柄及间接给出的窗口所属的类。
nlndex:指定要获得的值的大于等于0字节的偏移量。有效值为从0开始到额外类存储空间字节数一2。
例如,若指定了10位或更多的额外类存储空间,则应设为第5个16位整数的索引位8。允许有的另外的有效值:
GCW_原子:恢复一个唯一标识窗口类的原子值,该值与RegiterClassEx函数的返回值相同。
GCW_HICONSM:恢复与窗口相关的小图标的句柄。
返回值:如果函数成功,返回值是所需的16位值;如果函数失败,返回值是零。若想获得更多错误信息,请调用GetLastError函数。
备注:通过使用函数RegisterClassEx,将结构WNDCLASSEX中的cbClsEXtra单元设为一个非0值来保留额外的类存储空间。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
RegisterClass
函数功能:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。
RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。
函数原型:ATON RegisterClass(CONST WNDCLASS ★lpWndClass);
参数:
lpWndClass:指向一个WNDCLASS结构的指针。在将它传递给函数之前,必须在该结构中填充适当的类属性。
返回值:如果函数成功,返回值是唯一标识已注册的类的一个原子;如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注:如果使用RegisterClassA来注册窗口,应用程序通知系统被注册类的窗口的消息使用ANSI字符集的文本和字符参数;如果使用RegisterClassW来注册窗口,应用程序需要系统以Unicode来传递消息的文本参数。lsWindowUnicode函数使应用程序可以查询每一个窗口的字符特征。参看Win32API中的ANSI和Unicode
函数,请查阅Functiont prototype。
应用程序注册的所有的窗口类在应用程序中止后都为未注册的类。
Windows 95:所有由DLL注册的类在DLL卸载后均未注册的类。
Windows NT:所有由DLL注册的类在DLL卸载后仍为已注册的类。
Windows
95:如果WNDCLASSEX结构中的cbWndExtra或cbClsExtra单元包含字节数超过40个字节,则RegisterClassEx将失败。
Windows CE:由lpWndClass参数指向的WNDCLAS结构不支持lpszMenuName域,因为WindowsCE不支持缺省菜单。
除非使用了WindowsCE的lconcurs组件(这个组件提供了在适当目标平台上的鼠标支持),否则不能使用由lpWndClass指向的WNDCLASS结构中的hCursor域。
速查:Windows
NT:3.1以上版本;Windows:95以上版本:WindowsCE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib;Unicode:在Windows
NT上实现为Unicodee和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = SetClassWord
函数功能:该函数替换指定窗口所属的窗口类的额外存储空间中的指定偏移地址的16位值。由16位窗口支持的GCW_值己经过时,必须使用SetClassLong函数来设置此前使用SetClassword函数的GCW_值设置的类值。
函数原型:WORD SetClassWord(HWND hWnd,int nlndex,WORD wNewWord);
参数:
hWnd:窗口的句柄及间接给出的窗口所属的类。
nlndex:指定要获得的值的大于等于0字节的偏移量。有效值为从0开始到额外类存储空间字节数-2。
例如,若指定了10位或更多的额外类存储空间,则应设为第5个16位整数的索引位8。
wNewWord:指定替换值。
返回值:如果函数成功,返回值是指定的16为整数的原来的值。如果该值未被预先设定,返回值为0。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注:通过使用函数RegisterClassEx将结构WNDCLASSEX中的cbClsExtra单元指定为一个非0值来保留额外类的存储空间。
三、窗口过程函数(Window Procedure)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
CallWindowProc
函数功能:该函数CallWindowProc将消息信息传送给指定的窗口过程。
函数原型:LRESULT CallWindowProc(WNDPROC lpPrevWndFunc,HWND hWnd.UINT Msg,WPARAM
wParam,LPARAMIParam);
参数:
lpPrevWndFunc:指向前一个窗口过程的指针。如果该值是通过调用GetWindowLong函数,并将该函数中的nlndex参数设为GWL_WNDPROC或DWL_DLGPROC而得到的,那么它实际上要么是窗口或者对话框的地址,要么就是代表该地址的句柄。
hWnd:指向接收消息的窗口过程的句柄。
Msg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
返回值:返回值指定了消息处理结果,它与发送的消息有关。
备注:使用函数CallWindowsProc可进行窗口子分类。通常来说,同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口,在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。
SetWindowLoog函数通过改变与特定窗口相关的窗日过程,使系统调用新的窗口过程来创建子类,新的窗口过程替换了以前的窗口过程。应用程序必须通过调用CallWindowsProc来将新窗日过程没有处理的任何消息传送到以前的窗口过程中,这样就允许应用程序创建一系列窗口过程。
如果定义了STRICT,那么lpPrevWndFunc参数具有WNDPROC数据类型。WNDPROC类型说明如下:
LRESULT(CALLBACK· WNDPROC)(HWND, UINT WPARAM,LPARAM)
如果没有定义STRICT,那么lpPrevWndFunc参数具有FARPROC数据类型。FARPROC类型说明如下:int(FAR
WINAPL·FARPROC)()
在C语言中,FARPROC申明表示为一个没有指定参数表的回调函数。然而在
C++中;申明中的空参数表示该函数没有参数。这种微妙的区别有可能引起代码出错。下面是一种解决办法:#ifdef STRICT;WNDPROC
MyWindowProcedure;#else;FARPROC MyindowProcedure;#endif
IResult=CallWindowProc(MyWindowProcedure,…)
有关该函数的空参数表方面进一步的信息,清参考Bjarne Stroustrup编写的C++编程语言第2版。
对于Windows NT:函数CallWindowsProc
function进行了Unicode至ANSf转换处理。如果你直接调用该窗口过程,那么无法利用该转换。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib:Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
DefWindowProc
函数功能:该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。调用DefWindowProc函数时使用窗口过程接收的相同参数。
函数原型:LRESULT DefWindowProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
参数:
hWnd:指向接收消息的窗口过程的句柄。
Msg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
返回值:返回值就是消息处理结果,它与发送的消息有关。
备注:对于Windows CE;如果Msg为WM_SETTEXT那么返回0。
当DefWindowProc处理WM_DESTROY消息时,它不自动调用PostQutMessage。
速查:Windows NT 3.1以上版本;Windows:95以上版本:Windows
CE以上版本;头文件;winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = =
WindowProc
函数功能:该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WNDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。
函数原型:LRESULT CALLBACK WindowProc(HWND hwhd,uMsg,WPARAM wParam,LPARAM
IParam);
参数:
hwnd:指向窗口的句柄。
uMsg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。
返回值:返回值就是消息处理结果,它与发送的消息有关。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0
以上版本;头文件:winuser.h;库文件:用户自定义。
四、窗口属性函数(Window Property)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
EnumProps
函数功能:该函数将窗口属性表中的所有项列举出来,一个一个地传送给指定的回调函数,直到列举到最后一项,或者回调函数返回FALSE为止。
函数原型:int EnumProps(HWND hWnd,PROPENUMPROC lpEnumFunc);
参数:
hWnd:指向要列举属性表内容的窗口。
lpEnumFunc:指向回调函数的指针。有关回调函数方面更多的信息,可参考PropEnumProc函数。
返回值:返回值指定了回调函数返回的最后一个值、如果函数没有发现要列举的属性,那么它返回-1。
备注:应用程序只能删除它增加进去的那些属性。它无法删除其他应用程序加进去的或者系统本身的属性。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Window
CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
EnumPropsEx
函数功能:该函数将窗口属性表中的所有项列举出来,依次传送给指定的回调函数,直到列举到最后一项,或者回调函数返回FALSE为止。
函数原型:int EnumPropsEx(HWND hWnd,PROPENUMPROCEX lpEnumFunc,LPARAM IParam);
参数:
hWnd:指向要列举属性表内容的窗口。
lpEnumFunc:指向回调函数的指针。有关目调函数方面更多的信息,可参考PropEnumProcEx函数。
IParam:包含应用程序定义的、要传送给回调函数的数据。
返回值:返回值指定了回调函数返回的最后一个值。如果函数没有发现要列举的属性,那么它返回-1。
备注:应用程序只能删除它增加进去的那些属性。它无法删除其他应用程序加进去的或者系统本有的属性。
速查: Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持:头文件:Winser.h;库文件:user32.lib:URIC0d6:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetProp
函数功能:该函数从给定窗口的属性列表中检索数据句柄。给定的字符串标识了要检索的句柄。该字符串和句柄必须在前一次调用SetProp函数时已经加到属性表中。
函数原型:HANDLE GetProp(HWND hWnd,LPCTSTR lpString);
参数:
hWnd:指向要搜索属性表的窗口。
LpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,那么它必须是使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数的低位率中,而高位字必须为O。
返回值:如果属性表中包含了给定的字符串,那么返回值为相关的数据句柄。否则,返回值为NULL。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持:头文件:winuser.h;库文件:user32。lib;Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
PropEnumProcEx
函数功能:该函数是一个应用程序定义的回调函数,它与EnumPropsEx函数一同使用。该函数从窗口属性表中检索属性项。PROPENUMPROCEX类型定义了一个指向该回调函数的指针。PropEnumProcEx是用于应用程序定义的函数名的占位符。
函数原型 BOOL CALLBACK PropEnumProcEx(HWND hwnd,LPTSTR lpszStrng,HANDLE
hData,DWORD dwData);
参数:
hwnd:指向要列举属性表内容的窗口。
lpszString:指向以null结尾的字符串的指针。该字符串是属性表项的字符串部分。该字符串是在通过调用SetProp函数将属性增加到窗口属性表中时与数据句柄一起指定的。
hData:指向数据的句柄。该句柄是属性表项中的数据部分。
dwData:应用程序定义的数据、该值被指定为在调用EnumPropsEX进行列举初始化时的IParam参数。
返回值:返回TRUE以继续列举属性表。返回FALSE停止列举属性表。
备注:下列限制适用该回调函数:
请回调函数不应该产生对其他任务的控制或做一些有可能产生对其他任务的控制的事情。该回调函数可以调用RemoveProp函数。然而,RemoveProp函数通过该回调函数的参数只能清除传给该回调函数的属性。该回调函数不应该试图增加属性。
速查:Windows NT:3.1以上版本;Windows:95的以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:用户自定义;Unicode:定义为Unicode和ANSI原型。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
RemoveProp
函数功能:该函数从指定的窗口的属性表中删除一项。指定的字符串标识了要删除的项。
函数原型:HANDLE RemoveProp(HWND hWnd,LPCTSTR lpString);
参数:
hWnd:指向要改变属性项的窗口的句柄。
lpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,那么它必须是使用AddAtom函数创建的。原子是16位的数据值,它必须是放置在lpString参数的低位字中,
而高位率必须为0。
返回值:返回值标识了指定的字符串。如果该串无法在指定的属性表中发现,那么返回值为NULL。
备注:应用程序必须释放与从属性表中清除的项相关的数据句柄。应用程序只能清除它加入的那些属性它不能清除其他应用程序或系统本身加入的属性。
RemoveProp函数返回与该字符串相关的数据句柄,这样应用程序就可以释放与该句柄相关的数据。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;文件:user32.lib;Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
SetProp
函数功能:该函数在指定窗口的属性表中增加一个新项,或者修改一个现有项。如果指定的字符串不在属性表中,那么就增加该新的项,新项中包含该字符串和句柄,否则就用指定的句柄替换该字符串的全前句柄。
函数原型:BOOL SetProp(HWND hWnd,LPCTSTR lpString,HANDLE hData);
参数:
hWnd:指向窗口的句柄,该窗口的属性表要接收一个新项。
lpString:指向以null结尾的字符串指针,或者包含一个标识字符串的原子。如果该参数是一个原子,么它必须是以前使用GlobalAddAtom函数创建的。原子是16位的数据值,它必须是放置在lpstring参数低位字中,而高位字必须为O。
hData:指向要拷贝到属性表中的数据的句柄。该数据句柄可以标识任何对应用程序有用的值。
返回值:如果该数据句柄和字符串以加到属性表中,那么返回值为非零。如果该函数失败,那么返回为零。若想获得更多错误信息,请调用GetLastError函数。
备注:在清除窗口之前(也就足在处理WM_DESTROY消息之前),应用程序必须把它加到属性表的所项清除。应用程序必须使用RemoveProp函数来清除这些项。
速查:Windows NT:3.1以上版本:Windows:95以上版本:Windows
CE:不支持:头文件:winuser.h;文件:user32.lib:Unicode:在Windows NT环境中以Unicode和ANSI版本实现。
五、光标函数(CurSor)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
CliepCursor
函数功能;该函数把光标限制在屏幕上的一个矩形区域内,如果调用SetCursor或用鼠标设置的一个随后的光标位置在该矩形区域的外面,则系统自动调整该位置以保持光标在矩形区域之内。
函数原型:BOOL CliepCursor(CONST RECT★ lpRect);
参数:
IpRect:指向RECT结构的指针,该结构包含限制矩形区域左上角和右下角的屏幕坐标,如果该指针为NULL(空),则光标可以在屏幕的任何区域移动。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError。
备注:光标是一个共享资源,如果一个应用控制了光标,在将控制转向另一个应用之前,必须要使用ClipCursor来释放光标,该调用过程必须具有对窗口的WINSTA_WRITEATTRIBUTES访问权。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件;user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
CopyCursor
函数功能:该函数复制一光标。
函数原型:HCURSOR CopyCursor(HCURSOR pcur);
参数:
pcur:被复制光标的句柄
返回值;如果成功,返回值是复制光标的句柄;如果失败,返回值为NULL(空)。若想获得更多错误信息,请调用GetLastError函数。
备注;CopyCursor函数能使一个应用程序或一个动态连接库(OLL)得到一个属于另一模块的光标形状的句柄。如果另外一个模块被释放,则该应用程序仍然可以使用该光标形状。在关闭之前,一个应用程序必须调用DestroyCursor函数来释放任何与该光标有关的系统资源。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
CreateCursor
函数功能:该函数创建一个指定大小、位模式和热点的光标。
函数原型:HCURSOR CreateCursor(HINSTANCE htnst,int xHotSpot;int yHotSpot;int
nWidth;iut nHeight,CONST VOID ★pvANDPlane,CONST VOID ★pvXORPlane);
参数:
hlnst:创建光标的应用程序的当前事例句柄。
xHotSpot:指定光标热点的水平位置。
yHotSpot:指定光标热点的垂直位置。
nWidth:以像素为单位指定光标的宽度。
nHeight:以像素为单位指定光标的高度。
pvANDPlane:指向一个字节数组的指针,该数组包含光标AND掩码的位值,就象设备相关的单色位图一样。
pvXORPlane:指向一个字节数组的指针,该数组包含光标XOR掩码的位值,就象设备相关的单色位图一样。
返回值:如果成功,返回光标的值;如果失败,返回值为NULL(空),若想获得更多错误信息,调用GetLastError函数。
备注:nWidth和nHeight参数必须指定一个当前显示驱动支持的宽度和高度,因为系统不能创建一个其他尺寸的光标,为了确定显示驱动所支持的宽度和高度,请使用GetSystemMetrics函数,指定SM_CXCUROR或SM_CYCURSOR值。在一个应用程序关闭之前,必须调用DestroyCursor函数来释放与光标有关的任何系统资源。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
DestroyCUrsor
函数功能:该函数销毁一个光标并释放它占用的任何内存,不要使用该函数去消毁一个共享光标。
函数原型:8OOL DestroyCUrsor(HCURSOR hCursor);
参数:
hCursor:要销毁的光标的句柄,该光标必须不在使用中。
返回值:如果成功,返回非零;如果失败,返回值为零,若想获得更多错误信息,请调用GetLastError函数。
备注:DestroyCursor函数销毁一个非共享的光标;不要用它销毁一个共享光标。一个共享光标只要调用它的模块仍在内存中,则该共享光标还是有效的,下面的函数可得到一个共享光标:LoadCursor;LoadCursorFronFile;Loadlmage(如果使用LR-SHARED标志);
Copylmage(如果使用LR_COPYRETURORG标志并且hlmags参数是一个共享光标)。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetClipCursor
函数功能:该函数检取一个矩形区域的屏幕坐标,光标被限制在该矩形区域之内。
函数原型:BOOL GetClipCursor(LPRECT IpRect);
参数:
IpRect:一个RECT结构的指针;接收限制矩形的屏幕坐标。如果该光标没有被限制在一个矩形区域内,则该RECT结构接收屏幕的尺寸。
返回值:如果成功,返回非零;如果失败,返回值为零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是一个共享光标,如果一个应用程序使用ClipCursor函数来限制该光标,那么在它放弃控制转向另一个应用之前必须使用ClipCursor来释放该光标,该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。
速查:Windows NT:3.1及以上下版本;Windows:95及以上版本;Windows
CE:不支持;头文件:Winusre.h;库文件:user32。lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetCursor
函数功能:该函数检取当前光标的句柄。
函数原型:HCURSOR GetCursor(VOID);
参数:无。
返回值:返回值是当前光标的句柄,如果没有光标,返回值为NULL。
速查:Windows NT:3.1及以上版本;Wjhdows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
GetCursorPos
函数功能:该函数检取光标的位置,以屏幕坐标表示。
函数原型:BOOL GetCursorPos(LPPOlNT IpPoint);
参数:
IpPint:POINT结构指针,该结构接收光标的屏幕坐标。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:光标的位置通常以屏幕坐标的形式给出,它并不受包含该光标的窗口的映射模式的影响。该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
LoadCursorFromFile
函数功能:该函数根据一个文件中所含的数据创建光标。该文件由它的名字所指定或由一个系统光标鉴别器指定,该函数返回一个新建光标的句柄,文件所包含的光标数据可以是光标格式(CUR)或运动光标格式(.ANI)。
函数原型:HCURSOR LoadCursorFromFile(LPCTSTR IpFileName);
参数:
IpFileName:指明创建光标所用的文件数据资源,文件中的数据格式必须是COR或ANI,如果IpFileName的高位字为非零,则IpFileName就是指向一个字符串的指针,该字符串是包含光标数据的文件的名字。
如果IpFileName的高位字为零,低位字是系统光标标识符,则该函数在WIN.INI文件中搜索与系统光标名字有关的[Cursors]条目,下面是系统光标的名字和标识符的清单:
"AppStarting":OCR_APPSTARTING;"Arrow":OCR_NORMAL"Crosshair":OCR_CROSS;"Hand":WindowsNT5.0
and
laterOCR_HAND;"Help":OCR_HELP;"IBeam":OCR_IBEAM;"Icon":OCR_ICON;"No":OCR_NO;"Size":OCR_SIZE;
"SizeAll":OCR_SIZEALL;"SizeNESW":OCR_SIZENESW;"SizeNS":OCR_SIZENS;"SizeNWSE":OCR_SIZENESW;"SizeWE":OCR_SIZEWE;"UpArrow":OCR_UP;"Wait":OCR_WAIT
返回值:如果成功,返回值是新建光标的句柄;如果失败,返回值为空(NULL)。若想获得更多错误信息,请调用GetLastError函数。GetLastError也许会返回如下的值:ERROR_FILE_NOT_FOUND,没有找到指定的文件。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT中实现Unicode和ANSI两个版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
SetCursor
函数功能:该函数确定光标的形状。
函数原型:HCURSOR SetCursor(HCURSOR hCursor);
参数:
hCursor:光标的句柄,该光标由CreateCursor函数载入。如果该参数为NULL,则该光标从屏幕上移开。在Windows95中该光标的宽和高是GetSysfemMefirics
函数的返回值SM_CXCURSOR和观_CYCURSOR,并且光标的位深必须和显示器的位深相匹配,或者光标是单色的。
返回值:如果有前一个光标,则返回值是前光标的句柄;如果没有前光标,则返回值是NUL。
备注:仅当新光标与前光标不同时,才设置该光标,不然的话,该函数立即返回。该光标是一个共享资源。一个窗口仅当光标在其客户区域,或者它正在捕捉鼠标输入时,它才设置光标的形状。在一个没有鼠标的系统中,该窗口在光标离开它的客户区域或它要把控制权交给其他窗口之前,它会恢复以前的光标。如果应用程序必须在窗口中设置光标,必须确保指定窗口类的类光标被设为NULL,如果类光标不是NULL,则每次移动鼠标时,系统都要恢复类光标。如果内部的光标显不计数值小于零,则光标不在屏幕上显示。当一个应用程序使用ShowCursor函数隐藏光标的次数多于显示光标的次数时,则会发生这种情况。Windows
CE:当一个目标平台不支持鼠标光标时,使用cursor光标组件,该光标组件仅支持等待光标,设置等待光标,使用如下的代码:SetCursor(LoadCursor(NULL,IDC_WAIT));当一个目标平台不支持鼠标光标时,使用mcursor光标组件。该组件不支持彩色光标。
速查:Window NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
SetCursorPOS
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPOS(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
SetSystemCursor
函数功能:该函数使一个应用程序定制系统光标。它用hcur规定的光标内容代替id定义的系统光标内容,接着销毁hour。
函数原型:BOOL SetSystemCursor(HCURSOR hour,DWORD id);
参数:
hcur:光标的句柄,该函数hcur标识的光标的内容代替id定义的系统光标内容。系统通过调用DestroyCursor函数销毁hour。因此hour不能是由LoadCursor函数载入的光标。要指定一个从资源载入的光标,先用CopyCursor函数复制该光标,然后把该副本传送给SetSystemCursor函数。
Id:指定由hour的内容替换系统光标。
下面是一系列的系统光标标识符:
OCR_APPSTARTING:标准箭头和小的沙漏;OCR_NORAAC:标准箭头
OCR_CROSS:交叉十字线光标:OCR_HAND:手的形状(WindowsNT5.0和以后版本)
OCR_HELP:箭头和向东标记;OCR_IBEAM:I形梁;OCR_NO:斜的圆
OCR_SIZEALL:四个方位的箭头分别指向北、南、东、西
OCR_SIZENESEW:双箭头分别指向东北和西南;OCR_SIZENS:双箭头,分别指向北和南
OCR_SIZENWSE:双箭头分别指向西北和东南;OCR_SIZEWE:双箭头分别指向西和东
OCR_UP:垂直箭头:OCR_WAIT:沙漏返回值:如果成功,返回非零值;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
ShowCursor
函数功能:该函数显示或隐藏光标。
函数原型:int ShowCursor(BOOL bShow);
参数:
bShow:确定内部的显示计数器是增加还是减少,如果bShow为TRUE,则显示计数器增加1,如果bShow为FALSE,则计数器减1。
返回值:返回值规定新的显示计数器。
备注:该函数设置了一个内部显示计数器以确定光标是否显示,仅当显示计数器的值大于或等于0时,光标才显示,如果安装了鼠标,则显示计数的初始值为0。如果没有安装鼠标,显示计数是C1。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
LoadCursor
函数功能:该函数从一个与应用事例相关的可执行文件(EXE文件)中载入指定的光标资源。该函数已被Loadlmage函数替代。
函数原型:HCURSOR LoadCursor(HINSTANCE hlnstance,LPCTSTR lpCursorName);
参数:
hlnstance:标识一个模块事例,它的可执行文件包含要载入的光标。
LpCursorName:指向以NULL结束的字符串的指针,该字符串存有等载入的光标资源名。该参数低位字节和高位字节0组成资源标识器也可以由低位字为资源标识符和高位字为零组成。也可以用MADEINTRES_OURCE宏命令创建该值。要使用Win32预定义的一个光标,应用程序必须把hlnsfance参数设为NULL,并把IpCursorName设为如下值之一:
IDC_APPSTARING:标准箭头和小沙漏;IDC_ARROW:标准光标;IDC_CROSS:十字光标。
返回值:如果成功,返回值是新载入的光标的句柄:如果失败,返回值是NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:LoadCursor函数仅载入没有被载入过的光标资源,否则,它检取已存在的光标资的句柄。仅当IpCursorName参数指向一个光标资源时,该函数才返回一个有效的光标句柄。如果IpCursorName不是指向光标而是指向了其他类型的资源(如icon),则该函数返回值不是NULL,尽管它不是一个有效的光标句柄,该函数为当前显示设备光标搜寻最贴切的光标资源。光标资源可以是彩色或单色的位图。Windows
CE:当目标平台不支持鼠标光标时。使用cursor光标组件。该光标组件支持的唯一的光标是等待光标(IDC_WAIT)。使用LoadCursor函数与SetCursor函数可设值等待光标。SetCursor(LoadCursor(NULL,IDC_WAIT))当目标平台不支持鼠标光标时,使用cursor光标组件,该组件以桌面窗口平台同样的方式支持LoadCursor函数,唯一不同的是仅支持单色光标。Windows
CE不支持彩色光标。试图载入一个彩色光标,将产生难以预料的结果。返回值是不确定的。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = =
六、消息和消息总队列函数(Message and Message Queue)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
BroadcastSystemMessage
函数功能:该函数发送消息给指定的接受者。接受者可以是一个应用程序、安装驱动器、网络驱动器、系统级设备驱动器或这些系统组件的组合。
函数原型:long BroadcastSystemMessage(DWORD dwFIags,LPDWORD IpdwRecipients,UINT
UiMessage,WPARAMwParam,LPARAM IParam);
参数:
dwFlags:选项标志。可取下列值的组合:
BSF_FLUSHDISK:接受者处理消息之后清洗磁盘。
BSF_FORCEIFHUNG:继续广播消息,即使超时周期结束或一个接受者已挂起。
BSF_IGNORECURRENTTASK:不发送消息给属于当前任务的窗口。这样,应用程序就不会接收自己的消息。
BSF_NOHANG:强制挂起的应用程序超时。如果一个接受者超时,不再继续广播消息。
BSF_NOTIMEOUTIFNOTHUNG:只要接受者没挂起,一直等待对消息的响应。不会出现超时。
BSF_POSTMESSAGE:寄送消息。不能和BSF_QUERY组合使用。
BSF_QUERY:每次发送消息给一个接受者,只有当前接受者返回TRUE后,才能发送给下一个接受者。
lpdwRecipients:指向变量的指针,该变量含有和接收消息接受者的信息。此变量可为下列值的组合:
BSM_ALLCOMPONENTS:广播到所有的系统组件。
BSM_ALLDESKTOPS:Windows NT下,广播到所有的桌面。要求SE_TCB_NAME特权。
BSM_APPLICATIONS:广播到应用程序。
BSM_INSTALLABLEDRIVERS:Windows 95下,广播到安装驱动器。
BSM_INTDRIVER:Windows 95下,广播到网络驱动器。
BSM_VXDS:Windows 95下,广播到所有系统级设备驱动器。
当函数返回时,此变量接受上述值的组合,以确定真正接受消息的接受者。如果此参数为NULL,则将消息广播到所有的组件。
uiMessage:系统消息标识符。
WParam:32位消息特定值。
IParam:32位消息特定值。
返回值:如果函数调用成功,返回值是正数。如果函数不能广播消息,返回值是C1。如果参数dwFlags为BSF_QUERY且至少一个接受者返回BROADCAST_QUERY_DENY给相应的消息,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:如果BSF_QUERY没指定,函数发送指定的消息给所有请求的接受者,并忽略这些接受者返回的值。
速查:Windows NT:4.0及以上版本:Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
DispatchMessage
函数功能:该函数调度一个消息给窗口程序。通常调度从GetMessage取得的消息。
函数原型:LONG DispatchMessage(CONST MSG★lpmsg);
参数:
lpmsg:指向含有消息的MSG结构的指针。
返回值:返回值是窗口程序返回的值。尽管返回值的含义依赖于被调度的消息,但返回值通常被忽略。
备注:MSG结构必须包含有效的消息值。如果参数lpmsg指向一个WM_TIMER消息,并且WM_TIMER消息的参数IParam不为NULL,则调用IPa1ram指向的函数,而不是调用窗口程序。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetlnputState
函数功能:该函数确定在调用线程的消息队列里,是否有鼠标键或键盘消息。
函数原型:BOOL GetlnputState(VOID)
参数:无。
返回值:如果队列里含有一个或多个新的鼠标键或键盘消息,返回非零值。如果队列里没有新的鼠标键或键盘消息,返回值是零。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMessage
函数功能:该函数从调用线程的消息队列里取得一个消息并将其放于指定的结构。此函数可取得与指定窗口联系的消息和由PostThreadMesssge寄送的线程消息。此函数接收一定范围的消息值。GetMessage不接收属于其他线程或应用程序的消息。
函数原型:BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT
wMsgFilteMax
参数:
lpMsg:指向MSG结构的指针,该结构从线程的消息队列里接收消息信息。
hWnd:取得其消息的窗口的句柄。这是一个有特殊含义的值(NULL)。GetMessage为任何属于调用线程的窗口检索消息,线程消息通过PostThreadMessage寄送给调用线程。
wMsgFilterMin:指定被检索的最小消息值的整数。
wMsgFilterMax:指定被检索的最大消息值的整数。
返回值:如果函数取得WM_QUIT之外的其他消息,返回非零值。如果函数取得WM_QUIT消息,返回值是零。如果出现了错误,返回值是_1。例如,当hWnd是无效的窗口句柄或lpMsg是无效的指针时。若想获得更多的错误信息,请调用GetLastError函数。
备注:应用程序通常用返回值来确定是否终止主消息循环并退出程序。
GetMesssge只接收与参数hWnd标识的窗口或子窗口相联系的消息,子窗口由函数IsChild决定,消息值的范围由参数wMsgFilterMin和wMsgFilterMax给出。如果hWnd为NULL,则GetMessage接收属于调用线程的窗口的消息,线程消息由函数PostThreadMessage寄送给调用线程。GetMessage不接收属于其他线程或其他线程的窗口的消息,即使hWnd为NULL。由PostThreadMessage寄送的线程消息,其消息hWnd值为NULL。如果wMsgFilterMin和wMsgFilterMax都为零,GetMessage返回所有可得的消息(即,无范围过滤)。
常数
WM_KEYFIRST和WM_KEYAST可作为过滤值取得与键盘输入相关的所有消息:常数WM_MOUSEFIRST和WM_MOUSELST可用来接收所有的鼠标消息。如果wMsgFilterMin和wMsgFilterMax都为零,GetMessage返回所有可得的消息(即,无范围过滤)。
GetMessage不从队列里清除WM.PAINT消息。该消息将保留在队列里直到处理完毕。
注意,此函数的返回值可非零、零或-1,应避免如下代码出现:
while(GetMessage(IpMsg,hwnd,0,0))…
-1返回值的可能性表示这样的代码会导致致命的应用程序错误。
速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本:头文件:winuser.h;输入库:user32.Iib;Unicode:在Windows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMessageEXtralnfo
函数功能:该函数为当前线程取得附加消息信息。附加消息信息是应用程序或驱动程序定义的与当前线程的消息队列联系的32位值。可用SetMessageExtralnfo来设置线程的附加消息信息,该消息信息将会保留到下一次调用GetMessage或PeekMessage之前。
函数原型:LONG GetMessageEXtralnfo(VOID)
参数:无。
返回值:返回值为附加信息。附加信息是设备特定的。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMessagePos
函数功能:该函数返回表示屏幕坐标下光标位置的长整数值。此位置表示当上一消息由GetMessage取得时鼠标占用的点。
函数原型:DWORD GetMessagePos(VOID)
参数:无。
返回值:返回值给出光标位置的X,y坐标。X坐标在低位整数,y坐标在高位整数。
备注:如前所述,X坐标在返回值的低位整数,y坐标在高位整数(都表示有符号值,因为在多显示器的系统里可取得负值)。如果返回值赋给了一个变量,可用MAKEPOINT宏从返回值取得POINT结构。也可用GET_X_LPARAM或GET_Y_LPARAM宏来抽取X,y坐标。
要得到光标的当前位置而不是上一个消息发生时的位置,调用函数GetCursorPos。
要点:不要用LOWORD或HIWORD宏来抽取鼠标位置的x,y坐标,因为在多显示器的系统里将返回不正确的结果。多显示器的系统里可取得负的x,
y坐标,但LOWORD和HIWORD将坐标当作无符号量。
Windows CE下,对那些使用记录笔而不是鼠标的设备,光标位置是指当上一信息由GetMessage取得时,记录笔在触屏上的位置。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMessageTime
函数功能:该函数返回由GetMessage从当前线程队列里取得上一消息的消息时间。时间是一个长整数,指定从系统开始到消息创建(即,放入线程消息队列)的占用时间(按毫秒计算)。
函数原型:LONG GetMessageTime(VOID)
参数:无。
返回值:返回值为消息时间。
备注:由GetMessageTime返回的值对后面的消息并不一定是增长的,因为当计时器计数超过长整数的最大值时,又从零开始计算。为计算消息间的延迟时间,必须验证第二个消息的时间比第一个消息的时间大,然后用第二个消息的时间减去第一个消息的时间。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h输入库:user32,lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetQueueStatus
函数功能:该函数返回表示调用线程消息队列里的消息的类型的标志。
函数原型:DWORD GetQueueStatus(UINT flags);
参数:
flags:表示消息类型的队列状态标志。此参数可为下列值的组合:
QS_ALLEVENTS:输入,WM_TIMER, WM_PAINT,WM_HOTKEY或寄送的消息在队列里。
QS_ALLINPUT:任何消息在队列里。
QS_ALLPOSTMESSAGE:寄送的消息(而不是其他所列消息)在队列里。
QS_HOTKEY:一条WM_HOTKEY消息在队列里。QS_INPUT:输入消息在队列里。
QS_KEY:一条WM_KEYUP WM_KEYDOWN,WM_SYSKEYUP或WM_SYSKEYDOWN消息在队列里。
QS_MOUSE:WM_MOUSEMOVE消息或鼠标键消息(WM_BUTTONUP WM_RBUTTONDOWN等)在消息队列里。
QS_MOUSEBUTTON:鼠标键消息(WM_LBUTTONUP,WM_RBUTTONDOWN等)在消息队列里。
QS_MOUSEMOVE:WM_MOUSEMOVE消息在消息队列里。
QS_FAINT:WM_PAINT消息在消息队列里。
QS_POSTMESSAGE:寄送的消息(而不是其他所列消息)在队列里。
QS_SENDMESSAGE:由其他线程或应用程序发送的消息在消息队列里。
QS_TIEMR:一条WM_TIEMR消息在消息队列里。
返回值:返回值的高位字表示队列里当前消息的类型。低位字表示上次调用GetQueuestatus,GetMessage或FeekMessBge以来加入队列并仍然在队列里的消息的类型。
备注:QS_标志出现在返回值里并不保证以后调用函数GetMessage或PeekMessage会返回一个消息。GetMesssge和PeekMesssge执行某些内部过滤会导致消息被内部处理。因此,GetQueueStatus的返回值只能被看作是否调用GetMessage或PeekMessage的提示。
QS_ALLPOSTMESSAGE和QS_POSTMESSAGE标志在被清除时不一样。QS_POSTMESSAGE在调用GetMessage或
PeekMessage时清除,无论是否过滤消息。QS_ALLPOSTMESSAGE在调用GetMessage或PeekMessage时清除,不过滤消息(wMsgFilterMin和wMsgFilterMax是零)。这对于多次调用PeeKMessage来获得不同范围的消息非常有用。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
InsendMessage
函数功能:该函数决定当前窗口程序是否处理另一个线程调用SendMesssge(在相同进程或不同进程)发送来的消息。
函数原型:BOOL InsendMessage(VOID);
参数:无。
返回值:如果窗口程序处理另一个线程调用SendMessage发送来的消息,返回非零值。如果窗口程序不处理另一个线程调用SendMessage发送来的消息,返回值是零。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h输入库:user32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
InsendMessageEx
函数功能:函数决定当前窗口程序是否处理另一个线程调用SendMessage(在相同进程或不同进程)发送来的消息。此函数与InsendMesssge相似,但另外提供了如何发送消息的信息。
函数原型:DWORD InsendMessageEx(LPVOID IpReserved);
参数:
IpReserved:保留值,必须为NULL。
返回值:如果消息没被发送,返回值是ISMEX_NOSEND。否则,返回值是一个或多个下列值:
ISMEX_CALLBACK:消息是用函数SendMesssgeCallback发送的。发送此消息的线程没被阻塞。
ISMEX_NOTIFY:消息是用函数SendNotifyMessags发送的。发送此消息的线程没被阻塞。
ISMEX_REPLIED:窗口程序处理了消息。发送此消息的线程不再被阻塞。
ISMEX_SEND:消息是用函数SendMessage或SendMessageTimeout发送的。如果ISMEX_REPLIED没设置,发送此消息的线程被阻塞。
速查:Wihdows NT:5.0及以上版本:Windows:98及以上版本;Wihdows
CE:不支持:头文件:winuser.h;输入库:user32.Iib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
PeekMessage
函数功能:该函数为一个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构。
函数原型:BOOL PeekMessage(LPMSG IpMsg,HWND hWnd,UINT wMSGfilterMin,UINT
wMsgFilterMax,UINT wRemoveMsg);
参数:
lpMsg:接收消息信息的MSG结构指针。
hWnd:其消息被检查的窗口的句柄。
wMsgFilterMin:指定被检查的消息范围里的第一个消息。
wMsgFilterMax:指定被检查的消息范围里的最后一个消息。
wRemoveMsg:确定消息如何被处理。此参数可取下列值之一:
PM_NOREMOVE:PeekMessage处理后,消息不从队列里除掉。
PM_REMOVE:PeekMessage处理后,消息从队列里除掉。
可将PM_NOYIELD随意组合到PM_NOREMOVE或PM_REMOVE。此标志使系统不释放等待调用程序空闲的线程。
缺省地,处理所有类型的消息。若只处理某些消息,指定一个或多个下列值:
PM_QS_INPUT:Windows NT5.0和Windows 98:处理鼠标和键盘消息。
PM_QS_PAINT:Windows NT 5.0和Windows 98:处理画图消息。
PM_QS_POSTMESSAGE:Windows NT 5.0和Windows 98:处理所有被寄送的消息,包括计时器和热键。
PM_QS_SENDMESSAGE:Windows NT 5.0和Windows 98:处理所有发送消息。
返回值:如果消息可得到,返回非零值;如果没有消息可得到,返回值是零。
备注:和函数GetMessage不一样的是,函数PeekMesssge在返回前不等待消息被放到队列里。
PeekMesssge只得到那些与参数hWnd标识的窗口相联系的消息或被lsChild确定为其子窗口相联系的消息,并且该消息要在由参数wMsgFiterMin和wMsgFiherMax确定的范围内。如果hWnd为NULL,则PeekMessage接收属于当前调用线程的窗口的消息(PeekMessage不接收属于其他线程的窗口的消息)。如果hWnd为C1,PeekMessage只返回hWnd值为NULL的消息,该消息由函数PostThreadMessage寄送。如果wMsgFilterMin和wMsgFilterMax都为零,GetMessage返回所有可得的消息(即,无范围过滤)。
常数WM_KEYFIRST和WMKEYLAST可作为过滤值取得所有键盘消息;常数WM_MOUSEFIRST和WM_MOUSELAST可用来接收所有的鼠标消息。
PeekMessage通常不从队列里清除WM_PANT消息。该消息将保留在队列里直到处理完毕。但如果WM_PAINT消息有一个空更新区,PeekMessage将从队列里清除WM_PAINT消息。
Windows CE:有一个NULL更新区的WM_PAINT消息不从队列里清除。
速查:Windows NT:3.1及以上版本;Wihdows:95及以上版本:Windows
CE:1.0及以上版本;头文件:winuser.h输入库:user32.lib:Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
PostMessage
函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。
函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
参数
hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:需要以 HWND_BROADCAST方式通信的应用程序应当用函数 RegisterwindwosMessage来获得应用程序间通信的独特的消息。
如果发送一个低于WM_USER范围的消息给异步消息函数(PostMessage.SendNotifyMessage,SendMesssgeCallback),消息参数不能包含指针。否则,操作将会失败。函数将再接收线程处理消息之前返回,发送者将在内存被使用之前释放。
速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
PostQuitMessage
函数功能:该函数向系统表明有个线程有终止请求。通常用来响应WM_DESTROY消息。
函数原型:VOID PostQuitMessage(int nExitCode);
参数:
pExitCode:指定应用程序退出代码。此值被用作消息WM_QUIT的wParam参数。
返回值:无。
备注:PostQuitMessage寄送一个WM_oUT消息给线程的消息队列并立即返回;此函数向系统表明有个线程请求在随后的某一时间终止。
当线程从消息队列里取得WM_QUIT消息时,应当退出消息循环并将控制返回给系统。返回给系统的退出值必须是消息WM_QUIT的wParam参数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32,lib:Uhicode:在Wihdows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
PostThreadMessage
函数功能:该函数将一个消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回。
函数原型:BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM
IParam);
参数
idThread:其消息将被寄送的线程的线程标识符。如果线程没有消息队列,此函数将失败。当线程第一次调用一个Win 32
USER或GDI函数时,系统创建线程的消息队列。要得到更多的信息,参见备注。
Msg:指定将被寄送的消息的类型。
wParam:指定附加的消息特定信息。
IParam:指定附加的消息特定信息。
返回值:如果函数调用成功,返回非零值。如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。如果idThread不是一个有效的线程标识符或由idThread确定的线程没有消息队
列,GetLastError返回ERROR_INVALID_THREAD。
备注:消息将寄送到的线程必须创建消息队列,否则调用PostThreadMessage会失败。用下列方法之一来处理这种情况:
调用PostThreadMessage。如果失败,调用Sleep,再调用PostThreadMessage,反复执行,直到PostThreadMessage成功。
创建一个事件对象,再创建线程。在调用PostThreadMessage之前,用函数WaitForSingleObject来等特事件被设置为被告知状态。消息将寄送到的线程调用PeedMessage(£msg,NULL,WM_USER,WM_USER,PM_NOREMOVE)来强制系统创建消息队列。设置事件,表示线程已准备好接收寄送的消息。
消息将寄送到的线程通过调用GetMesssge或PeekMesssge来取得消息。返回的MSG结构中的hwnd成员为NULL。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本:头文件:winuser.h;输入库:user32.lib;Unicode:在Windows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
RegisterWindowsMessage
函数功能:该函数定义一个新的窗口消息,该消息确保在系统中是唯一的。返回的消息值可在调用函数SendMessage或PostMessage时使用。
函数原型:UINT RegisterWindowsMessage(LPCTSTR lpString);
参数:
lpString:指定将被注册的消息的以‘/O’结束的字符串指针。
返回值:如果消息被成功注册,返回值是在范围OxCOOO到OxFFFF的消息标识符;如果函数调用失败,返回值是零。要得到更多的错误信息,调用函数GetLastError。
备注:RegisterWindowMessage通常为合作应用程序间的通信注册消息。
如果不同的应用程序注册同样的消息字符串,应用程序返回同样的消息值。消息保持注册,直到会话完成。
当一个以上的应用程序必须处理同一个消息时,必须使用RegisterWindowMessage。要在窗口类里发送私有消息,应用程序可以使用UM_USER到OX7FFF范围内的任意整数。(在此范围的消息对窗口类私有,而不是对应用程序私有。如,预定义的控制类如BUTTON,
EDIT LISTBOX和COMBOBOX可用此范围的值。)
速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
ReplyMessage
函数功能:该函数用于应答由函数SendMessage发送的消息,不返回控制给调用SendMessage的函数。
函数原型:BOOL ReplyMessage(LRESULTIResult);
参数:
IResult:指定消息处理的结果。可能的值由所发送的消息确定。
返回值:如果调用线程正处理从其他线程或进程发送的消息,返回非零值。如果调用线程不是正处理从其他线程或进程发送的消息,返回值是零。
备注:调用此函数,接收消息的窗口程序允许调用SendMessage的线程继续运行,尽管接收消息的线程已返回控制。调用ReplyMessage的线程也继续运行。
如果消息不是通过SendMessage发送的,或者消息由同一个线程发送,ReplyMessage不起作用。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows
CE:不支持:头文件:winuser.h;输入库,user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
SendAsyncProc
函数功能:该函数是应用程序定义的回调函数,和SendMessageCallback一起使用。系统在将消息传给目标窗口程序后,将消息传给回调函数。类型SENDASYNCPROC定义了一个指向此回调函数的指针。SendAsyncProc是此应用程序定义的函数名的占位符。
函数原型:VOID CALLBACK SendAsyncProc(HWND hwnd,UINT uMsg,DWORD dwData,LRESULT
IResult);
参数:
hwnd;其窗口程序接收消息的窗口的句柄。如果将SendMessageCallback的参数hwnd设置为HWND_BROADCAST,系统为每个顶层窗口调用一次SendAsyncProc。
uMsg:指定消息。
dwData:指定从函数SendMessageCallback发送来的应用程序定义的值。
IResult:指定消息处理的结果与消息。
返回值:此回调函数无返回值。
备注:通过传一个SENDASYNCPROC指针给函数SendMessageCallback来安装一个SendAsyncProc应用程序定义的回调函数。
此回调函数仅当调用SendMessageCallback的线程调用GetMessage,PeekMessage或WaitMessage时调用。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:
winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SendMessage
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
返回值:返回值指定消息处理的结果,依赖于所发送的消息。
备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。
如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。
Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要检查发送的消息是否被支持。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows
NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SendMessageCallback
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,并立即返回。当窗口程序处理完消息后,系统调用指定的回调函数,将消息处理的结果和一个应用程序定义的值传给回调函数。
函数原型:BOOL SendMessageCallback(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM
IParam,
SEhDASYNCPROC IpResultCallBack,DWORD dwData);
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
IpResultCallBack:指向回收函数的指针,窗曰程序处理完消息后调用该回调函数。参见SendAsyncProc可得到合适的回调函数的信息。如果hwnd为HWND_BROADCAST,系统为每个顶层窗口调用一次SendASyncProc回调函数。
dwData:一个应用程序定义的值,被传给由参数IPResultCallBack指向的回调函数。
返回值:如果函数调用成功,返回非零值。如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:如果发送一个低于WM_USER范围的消息给异步消息函数(PostMessage,SendNotifyMesssge;SendMessageCallback),消息参数不能包含指针。否则,操作将会失败。函数将在接收线程处理消息之前返回,发送者将在内存被使用之前释放。
需要以HWND_BROADCAST方式通信的应用程序应当用函数RegisterWindwosMessage来获得应用程序间通信的独特的消息。
此回调函数仅当调用SendMessagecallback的线程调用GetMessage,PeekMessage或WaitMessage时调用。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SendMessageTmeoUt
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,并且,如果指定的窗口属于不同的线程,直到窗口程序处理完消息或指定的超时周期结束函数才返回。如果接收消息的窗口和当前线程属于同一个队列,窗口程序立即调用,超时值无用。
函数原型:LRESULT SendMessageTmeoUt(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM
IParam,UINTfuFlags,UIUT uTimeout,LPDWORD lpdwResultult);
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
fuFlags;指定如何发送消息。此参数可为下列值的组合:
SMTO_ABORTIFHUNG:如果接收进程处于“hung”状态,不等待超时周期结束就返回。
SMTO_BLOCK:阻止调用线程处理其他任何请求,直到函数返回。
SMTO_NORMAL:调用线程等待函数返回时,不被阻止处理其他请求。
SMTO_ONTIMEOUTIFNOTHUNG:Windows 95及更高版本:如果接收线程没被挂起,当超时周期结束时不返回。
uTimeout:为超时周期指定以毫秒为单位的持续时间。如果该消息是一个广播消息,每个窗口可使用全超时周期。例如,如果指定5秒的超时周期,有3个顶层窗回未能处理消息,可以有最多15秒的延迟。
IpdwResult:指定消息处理的结果,依赖于所发送的消息。
返回值:如果函数调用成功,返回非零值。如果函数调用失败,或超时,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。如果GetLastError返回零,表明函数超时。如果使用HWND_BROADCAST,SenddMessaggTimeout不提供单个窗口超时信息。
速查: Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SendNotifyMessage
函数功能:该函数将指定的消息发送到一个窗口。如果该窗口是由调用线程创建的;此函数为该窗口调用窗口程序,并等待窗口程序处理完消息后再返回。如果该窗口是由不同的线程创建的,此函数将消息传给该窗口程序,并立即返回,不等待窗口程序处理完消息。
函数原型:BOOL SendNotifyMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:如果发送一个低于WM_USER范围的消息给异步消息函数(PostMessage,SendNotifyMessage,SendMesssgeCallback),消息参数不能包含指针。否则,操作将会失败。函数将在接收线程处理消息之前返回,发送者将在内存被使用之前释放。
需要以HWND_BROADCAST方式通信的应用程序应当用函数RegisterWindwosMessage来获得应用程序间通信的独特的消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Uncode和ANSI方式实现。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SetMesssgeEXtralnfo
函数功能:该函数为当前线程设置附加消息信息。附加消息信息是应用程序或驱动程序定义的与当前线程的消息队列联系的32位值。GetMessageExtralnfo来取得线程的附加消息信息。
函数原型:LPARAM SetMesssgeEXtralnfo(LPARAM IParam);
参数:
IParam:指定与当前线程联系的32位值。
返回值:返回值为前一个32位值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
TranslateMessage
函数功能:该函数将虚拟键消息转换为字符消息。字符消息被寄送到调用线程的消息队列里,当下一次线程调用函数GetMessage或PeekMessage时被读出。
函数原型:BOOL TranslateMessage(CONST MSG★lpMsg);
参数:
IpMsg:指向含有消息的MSG结构的指针,该结构里含有用函数GetMessage或PeekMessage从调用线程的消息队列里取得的消息信息。
返回值:如果消息被转换(即,字符消息被寄送到调用线程的消息队列里),返回非零值。如果消息是WM_kEYDOWN,WM_KEYUP
WM_SYSKEYDOWN或WM_SYSKEYUP,返回非零值,不考虑转换。如果消息没被转换(即,字符消息没被寄送到调用线程的消息队列里),返回值是零。
备注:此函数不修改由参数IpMsg指向的消息。
WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息。
WM_SYSKEYDOWN和WM_SYSKEYUP组合产生一个SYSWM_CHAR或
WM_SYSDEADCHAR消息。TtanslateMessage为那些由键盘驱动器映射为ASCll字符的键产生WM_CHAR消息。
如果应用程序为其他用途处理虚拟键消息,不应调用TranslateMessage。例如,如果件ThranslateAccelerator返回一个非零值,应用程序不应调用TranslateMessage。
Windows CE:Windows
CE不支持扫描码或扩展键标志,因此,不支持由TranslateMessage产生的WM_CHAR消息中的IKeyData参数(IParam)取值16-24。
TranslateMessage只能用于转换调用GetMessage或PeekMessage接收的消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
WaitMessage
函数功能:该函数产生对其他线程的控制,如果一个线程没有其他消息在其消息队列里。此函数中止线程,直到一个新消息被放入该线程的消息队列里,再返回。
函数原型;BOOL WaitMessage(VOID)
参数:无。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:在线程调用一个函数来检查队列后,如果有未经阅读的输入在消息队列里,WaitMessage不返回。这是因为PeekMessage,GetMessage,GetQueueStatus:WaitMessage,MsgWaitForMultipleObjects,MsgWaitForMulitpleObjectEx等函数检查队列后,改变队列的状态信息这样输入不再被认为是新的。如果连续调用WaitMessage,将等到指定类型的新输入到达后才返回。已存在的未读过的输入(在上次线程检查队列之前接收的)被忽略。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
七、坐标空间与变换函数 (Coordinate Space Trandformation)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
ClientToScreen
函数功能:该函数将指定点的用户坐标转换成屏幕坐标。
函数原型:BOOL ClientToScreen(HWND hWnd,LPPOINT lpPoint);
参数:
hWnd:用户区域用于转换的窗口句柄。
lpPoint:指向一个含有要转换的用户坐标的结构的指针,如果函数调用成功,新屏幕坐标复制到此结构。
返回值:如果函数调用成功,返回值为非零值,否则为零。
注释:函数用屏幕坐标取代POINT结构中的用户坐标,屏幕坐标与屏幕左上角相关联。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
MapwindowPoints
函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点。
函数原型:int MapwindowPoints(HWND hWndFrom, HWND hWndTo,LPPOINT lpPoints, UINT
cPoints);
参数:
hWndfrom:转换点所在窗口的句柄,如果此参数为NULL或HWND_DESETOP则假定这些点在屏幕坐标上。
hWndTo:转换到的窗口的句柄,如果此参数为NULL或HWND_DESKTOP,这些点被转换为屏幕坐标。
lpPoints:指向POINT结构数组的指针,此结构数组包含要转换的点,此参数也可指向RECT结构,在此情况下,Cpoints参数应设置为2。
cPoints:指定LpPoints参数指向的数组中POINT结构的数目。
返回值:如果函数调用成功,返回值的低位字是每一个源点的水平坐标的像素数目,以便计算每个目标点的水平坐标;高位字是每一个源点的垂直坐标的像素的数目,以便计算每个目标点的垂直坐标,如果函数调用失败,返回值为零。
Windows NT:若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
八、鼠标输入函数(Mouse Input)
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
DragDetect
函数功能:该函数捕获并跟踪鼠标的移动直到用户松开左键、按下Esc。键或者将鼠标移动到围绕指定点的“拖动矩形”之外。拖动矩形的宽和高由函数GetSystemMetrics返回的SM_CXDRAG或SM_CYDRAG确定。
函数原型:BOOL DragDetect(HWND hwnd,POINT pt);
参数:
hwnd:接受鼠标输入的窗口的句柄。
pt:鼠标在屏幕坐标下的初始位置,此函数根据这个点来确定拖动矩形的坐标。
返回值:如果用户在按着鼠标左键时将鼠标移出了拖动矩形之外,则返回非零值;如果用户按着鼠标左键在拖动内移动鼠标,则返回值是零。
备注:拖动矩形的系统度量是可构造的,允许更大或更小的拖动矩形。
速查:Windows NT: 4.0及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetCapture
函数功能:该函数取得捕获了鼠标的窗口(如果存在)的句柄。在同一时刻,只有一个窗口能捕获鼠标;此时,该窗口接收鼠标的输入,无论光标是否在其范围内。
函数原型:HWND GetCapture(VOID)
参数:无。
返回值:返回值是与当前线程相关联的捕获窗口的句柄。如果当前线程里没有窗口捕获到鼠标,则返回NULL。
备注:返回NULL并不意味着系统里没有其他进程或线程捕获到鼠标,只表示当前线程没有捕获到鼠标。
速查:Windows NT:4.0及以上版本;Wiodows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetDoubleClickTime
函数功能:该函数取得鼠标的当前双击时间。一次双击是指对鼠标键的两次连击,第一次击键后在指定时间内击第二次。双击时间是指在双击中,第一次击键和第二次击键之间的最大毫秒数。
函数原型:UINT GetDoubleClickTime(VOID)
参数:无。
返回值:返回是当前双击时间,按毫秒计算。
速查:Windows NT:4.0及以上版本;Windows:95及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
GetMouseMovePoints
函数原型:int GetMouseMovePoints(UINT cbSize,LPMOUSEMOVEPOlNT lppt,LPMOUSEMOVEPOINT
IpptBuf,int,nBufPoints,DWORD resolution);
参数:
cbSize:结构MOOSEMOVEPOINT的大小。
lppt:指向结构MOUSEMOVEPOINT的指针,该结构包含了有效的鼠标坐标(屏幕坐标)。也可以包含一个时间标记。
函数GetMouseMovePoints在鼠标坐标历史记录中查找一点。如果此函数查到该点,则返回包含提供点在内的在此之前的最后一个nBufPoints。如果应用程序提供一个时间标记,则函数GetMouseMovePoints将用它来区分记录于不同时间的两个相等的点。
应用程序使用从消息WM_MOOSEMOVE中接收的鼠标坐标来调用此函数,并把它们转换为屏幕坐标。
lpptBut:将接收点的缓冲区的指针。其大小至少应为cbsze· nBuffPoints。
nBufPoints:指定将取得的点的个数。
resolution:指定希望的分辨率。此参数可取下列值之一:
GMMP_USE_DISPLAY_POINTS:用显示分辨率取得点。
GMMP_USE_DRIVER_pOINTS:用驱动器分辨率取得点。在Windows
CE平台下,画笔驱动器的分辨率高于显示分辨率。这样,函数GetMouseMovePoints可被那些需要准确分辨率的应用程序使用。(如手写体识别软件或计算机辅助设计软件)。
返回值:如果函数调用成功,返回值是缓冲区里的点的数目。否则,函数返回C1。若想获得更多的错误信息,请调用GetlastError函数。函数GetLastError可能返回下面的错误代码。
GMMF_ERR_POINT_NOT_FOUNQ由lPPt指定的点找不到或不再存在于系统缓冲区中。
备注:系统至少保留着64个鼠标坐标及其时间标记。如果应用程序给GetMouseMovePoints提供了一个鼠标坐标,而该坐标存在于系统中的鼠标坐标历史记录中,则函数从历史坐标记录取得指定个数的坐标。也可以提供一个时间标记,用来区分历史记录中相同的点。
函数GetMouseMonePoints将返回实际发送给调用线程和其他线程的点。
速查:Windows NT:5.0及以上版本;Windows:98及以上版本;Windows
CE:2.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
mouse_event
函数功能:该函数综合鼠标击键和鼠标动作。
函数原型:VOID mouse_event(DWORD dwFlags,DWORD dx,DWORD dwFlags,OWORD dx,DWORD
dy, DWORD dwData, DWORD dwExtralnfo);
参数:
dwFlags:标志位集,指定点击按钮和鼠标动作的多种情况。此参数里的各位可以是下列值的任何合理组合:
MOOSE_EVENTF_ABSOLOTE:表明参数dX,dy含有规范化的绝对坐标。如果不设置此位,参数含有相对数据:相对于上次位置的改动位置。此标志可被设置,也可不设置,不管鼠标的类型或与系统相连的类似于鼠标的设备的类型如何。要得到关于相对鼠标动作的信息,参见下面备注部分。
MOOSEEVENTFMOVE:表明发生移动。
M00SEEVENTF_LEFTDOWN:表明接按下鼠标左键。
M00SEEVENTF_LEFTUP:表明松开鼠标左键。
MOOSEEVENTF_RIGHTDOWN:表明按下鼠标右键。
MOOSEEVENTF_RIGHTUP:表明松开鼠标右键。
MOOSEEVENTF_MIDDLEDOWN:表明按下鼠标中键。
MOOSEEVENTF_MIDDLEUP:表明松开鼠标中键。
MOOSEEVENTF_WHEEL:在Windows NT中如果鼠标有一个轮,表明鼠标轮被移动。移动的数量由dwData给出。
dx:指定鼠标沿x轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLOTE的设置。给出的绝对数据作为鼠标的实际X坐标;给出的相对数据作为移动的mickeys数。一个mickey表示鼠标移动的数量,表明鼠标已经移动。
dy:指定鼠标沿y轴的绝对位置或者从上次鼠标事件产生以来移动的数量,依赖于MOOSEEVENTF_ABSOLVTE的设置。给出的绝对数据作为鼠标的实际y坐标,给出的相对数据作为移动的mickeys数。
dwData:如果dwFlags为MOOSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。
如果dwFlagsS不是MOOSEEVENTF_WHEEL,则dWData应为零。
dwExtralnfo:指定与鼠标事件相关的附加32位值。应用程序调用函数GetMessgeExtrajnfo来获得此附加信息。
返回值:无。
备注:如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。
如果指定了MOWSEEVENTF_ABSOLOTE值,则dX和dy含有标准化的绝对坐标,其值在0到65535之间。事件程序将此坐标映射到显示表面。坐标(0,0)映射到显示表面的左上角,(6553,65535)映射到右下角。
如果没指定MOWSEEVENTF_ABSOLOTE,dX和dy表示相对于上次鼠标事件产生的位置(即上次报告的位置)的移动。正值表示鼠标向右(或下)移动;负值表示鼠标向左(或上)移动。
鼠标的相对移动服从鼠标速度和加速度等级的设置,一个最终用户用鼠标控制面板应用程序来设置这些值,应用程序用函数SystemParameterslnfo来取得和设置这些值。
在应用加速时系统对指定相对鼠标移动提供了两个测试。如果指定的沿X轴y轴的距离比第一个鼠标阈值大,并且鼠标的加速等级非零,则操作系统将距离加倍。如果指定的沿X轴或y轴的距离比第二个鼠标阈值大,并且鼠标的加速等级为2,则操作系统将从第一个阈测试得来的距离加倍。这样就允许操作系统将指定鼠标沿X轴或y轴的相对位移加到4倍。
一旦应用了加速,系统用期望的鼠标速度换算合成的值。鼠标速度的范围是从1(最慢)到20(最快),并代表基于鼠标移动的距离指示符移动的数量。缺省值是10,表示对鼠标的移动设有附加的修改。
函数mouse_event需要用的应用程序用来合成鼠标事件。也被应用程序用来取得鼠标位置和鼠标按键状态之外的鼠标信息。例如,如果输入板制造商想将基于画笔的信息传给自己的应用程序,可以写一个直接与输入板硬件通信的动态键接库(DLL),获得附加的信息,并保存到一个队列中。DLL然后调用mouse_event,用标准按键和x/y位置数据,并在参数dwExtralnfo设置排列的附加信息的指针或索引。当应用程序需要附加信息时,调用DLL(连同存贮在dwEXtralnfo中的指针或索引),则DLL返回附加信息。
Windows CE:Windows CE不支持参数 dwFlags取MOOSE EVENTF WHEEL常数。
速查: Windows NT: 3.1及以上版本; Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
ReleaseCapture
函数功能:该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入(无论光标的位置在哪里),除非点击鼠标键时,光标热点在另一个线程的窗口中。
函数原型:BOOL ReleaseCapture(VOlD)
参数:无。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetlastError函数。
备注:应用程序在调用函数SetCaPture之后调用此函数。
Windows 95:调用ReleaseCapture会引起失去鼠标捕获的窗日接收一个WM_CAPTURECHANGED消息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:User32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
SetCapture
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
函数原型:HWND SetCapture(HWND hwnd);
参数:
hWnd:当前线程里要捕获鼠标的窗口句柄。
返回值:返回值是上次捕获鼠标的窗口句柄。如果不存在那样的句柄,返回值是NULL。
备注:只有前台窗口才能捕获鼠标。如果一个后台窗口想捕获鼠标,则该窗口仅为其光标热点在该窗口可见部份的鼠标事件接收消息。另外,即使前台窗口已捕获了鼠标,用户也可点击该窗口,将其调入前台。当一个窗日不再需要所有的鼠标输入时,创建该窗口的线程应当调用函数ReleaseCapture来释放鼠标。此函数不能被用来捕获另一进程的鼠标输入。
Windows 95:调用SetCaptune会引起失去鼠标捕获的窗口接收一个WM_CAPTURECHANGED消息。
速查:头文件:Winuser.h:输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
SetDoubleCIckTime
函数功能:该函数为鼠标设置双击时间。
函数原型:BOOL SetDoubleCIckTime(UINT ulnterval);
参数:
ulnterval:指定在双击中第一次和第二次点击之间的毫秒数。如果此参数设置为零则系统使用缺省的双击时间,即500毫秒。
返回值:如果函数调用成功,返回非零值。如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:函数SetDoubleClickTime为系统中所有的窗口修改双击时间。
速查:Windows NT 3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = =
SwapMouseButton
函数功能:该函数反转或恢复鼠标左右键的含义
函数原型:BOOL SwapMouseButton(BOOL fSwap);
参数:
fSwap:指定鼠标键的含义是否被反转或恢复。如果此参数为TRUE,则左键产生右键消息而右键产生左键消息,如果此参数为FALSE,则恢复鼠标键的最初含义。
返回值:如果在函数调用之前鼠标键的含义已被反转,则返回非零值。如果鼠标键的含义没反转,返回值是零。
备注:鼠标键交换是为给那些用左手操作鼠标的人提供方便。此函数通常只能由控制板调用。尽管一个应用程序能够自由地调用此函数,但鼠标是一种共享资源,其键的含义反转会影响所有应用程序。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows
CE:不支持;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = =
TrackMouseEvent
函数功能:当在指定时间内鼠标指针离开或盘旋在一个窗口上时,此函数寄送消息。
函数原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
参数:
lpEventTrack;指向结构TRACKMOUSEEVENT的指针。
返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
此函数能寄送如下消息:
WM_MOUSEHOVER:在上次调用TrackMouseEvent指定的时间里,鼠标盘旋在窗口的客户区。当此消息产生时,盘旋跟踪停止。如果需要进一步的鼠标盘旋跟踪,应用程序应当再次调用TrackMouseEvent。
WM_MOUSELEAVE:鼠标离开上次调用TrackMouseEvent时指定的窗口客户区。当此消息产生时,所有由TrackMouseEvent要求的跟踪都被取消。当鼠标再次进入窗口,并且要求进一步的鼠标盘旋跟踪时,应用程序必须调用TrackMouseEvent。
备注:当鼠标指针在指定时间内停留在指定矩形内,就被认为是处于盘旋状态。调用函数
SystemParameterslnfo并使用SPI_GETMOUSEAOVERWIDTH,SPI_GETMOUSEHOVERAEIGHT和
SFI_GETMOOSEAOVERTIME值来取得矩形的大小和时间。
速查:Windows NT 4.0及以上版本;Windows 98及以上版本;Windows
CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = =
仓促间,没有来得及修改版式,看样子要等到下次了,不好意思。近期会将另外一份的速查API函数的手册贴上来,希望对大家的学习和工作有一定帮助~~
Api函数名 函数说明
WIN16可用 WIN95可用 WINNT可用
AbortDoc 终止一项打印作业 是 是 是
AbortPath 终止或取消DC中的一切路径 否 是 是
AbortPrinter 删除打印机缓冲文件 否 是 是
AbortSystemShutdowna 停止系统工作 否 是 是
AccessCheck 检验客户访问权限 否 是 是
AccessCheckAndAuditAlarm 检验访问,产生声音或警报 否 是 是
ActivateKeyboardLayout 激活一个新的键盘设备 否 是 是
AddAccessAllowedAce 将ACCESS_ALLOWED_ACE加入ACL 否 是 是
AddAccessDeniedAce 将ACCESS_DENIED_ACE加入ACL 否 是 是
AddAce 将ACE加入一个已存在的ACL 否 是 是
AddAtom 将一个字符串加入本地原子表 是 是 是
AddAuditAccessAce 将SYSTEM_AUDIT_ACE加入ACL 否 是 是
AddFontResource 将一种字体加入字体表 是 是 是
AddForm 加入一个打印机窗体 否 是 是
AddJob 启动一个打印作业 否 是 是
AddMonitor 加入一个打印机管理器 否 是 是
AddPort 加入一个打印机端口 否 是 是
AddPrintProcessor 将打印处理器复制到打印机服务器中 否 是 是
AddPrintProvidor 加入一个打印机支持器 否 是 是
AddPrinter 在打印机服务器上建立一个打印机 否 是 是
AddPrinterConnection 为当前用户建立与打印机的联系 否 是 是
AddPrinterDriver 将打印机驱动程序复制到打印机服务器中 否 是 是
AdjustTokenGroups 使能/取消令牌中的群 否 是 是
AdjustTokenPrivileges 使能/取消令牌特权 否 是 是
AdjustWindowRect 计算所需窗口矩形的大小 是 是 是
AdjustWindowRectEx 计算所需窗口矩形的大小 是 是 是
AdvancedDocumentProperties 进行打印机高级设置 否 是 是
AllocConsole 为当前进程建立控制台 否 是 是
AllocateAndInitializeSid 分配和初始化SID 否 是 是
AllocateLocallyUniqueId 分配LUID 否 是 是
AngleArc 按指定角度画弧 否 是 是
AnimatePalette 替换逻辑调色板中的项目 是 是 是
AnyPopup 标识弹出式窗口是否存在 是 是 是
AppendMenu 在菜单中加入新的项目 是 是 是
Arc 画弧 是 是 是
ArcTo 画椭圆弧 否 是 是
AreAllAccessesGranted 检查所有要求的访问 否 是 是
AreAnyAccessesGranted 检查任何要求的访问 否 是 是
ArrangeIconicWindows 排列最小化的子窗口 是 是 是
AttachThreadInput 将线索彼此相连 否 是 是
auxGetDevCaps 获取附属设备容量 否 是 是
auxGetNumDevs 返回附属设备数量 否 是 是
auxGetVolume 获取当前卷设置 否 是 是
auxOutMessage 向输出设备发送消息 否 是 是
auxSetVolume 设置附属设备卷 否 是 是
BackupEventLog 将事件记录保存至后备文件 否 是 是
BackupRead 产生磁带备份读 否 是 是
BackupSeek 产生磁带备份查寻 否 是 是
BackupWrite 产生磁带备份写 否 是 是
Beep 产生一个声调 否 是 是
BeginDeferWindowPos 创建一个窗口位置结构 否 是 是
BeginPaint 准备一个画图窗 是 是 是
BeginPath 开始一个路径等级 是 是 是
BeginUpdateResource 在可执行文件中开始资源文件更新 否 是 是
BitBlt 在设备描述表间复制位图 是 是 是
BringWindowToTop 恢复重叠窗 是 是 是
BroadcastSystemMessage 否 是 是
BuildCommDCB 向DCB中传送设备定义字符串 是 是 是
BuildCommDCBAndTimeouts 建立COMMDCB并设置超时值 否 是 是
CallMsgFilter 将消息传给消息过滤过程 是 是 是
CallNamedPipe 多管道操作 否 是 是
CallNextHookEx 调中链中的下一个挂钩过程 是 是 是
CallWindowProc 将消息传答窗口函数 否 是 是
CancelDC 取消指定DC上的任何悬而未决的操作 否 是 是
CascadeWindows 否 是 是
ChangeClipboardChain 从剪贴板查看窗口上删除一个窗口 是 是 是
ChangeMenu 否 是 是
ChangeServiceConfig 修改服务参数 否 是 是
CharLower 将字符或字符串变为小写 否 是 是
CharLowerBuff 将字符串变为小写 否 是 是
CharNext 转到字符串的下一个字符 否 是 是
CharPrev 转到字符串的上一个字符 否 是 是
CharToOem 把字符串转换成OEM字符 否 是 是
CharToOemBuff 把字符串转换成OEM字符 否 是 是
CharUpper 将字符或字符串变为大写 否 是 是
CharUpperBuff 将字符串变为小写 否 是 是
CheckColorsInGamut 检查设备调色板中是否有色彩 否 是 是
CheckDlgButton 用对话按钮修改复选标记 是 是 是
CheckMenuItem 修改菜单项的复选标记属性 是 是 是
CheckMenuRadioItem 否 是 是
CheckRadioButton 用单选按钮放置一个复选标记 是 是 是
ChildWindowFromPoint 确定包含有点的窗口 是 是 是
ChildWindowFromPointEx 否 是 是
ChooseColor 建立一个色彩选择对话框 否 是 是
ChooseFont 建立一个字体选择对话框 否 是 是
ChoosePixelFormat 否 是 是
Chord 画一条弦 是 是 是
ClearCommBreak 恢复字符传输 是 是 是
ClearCommError 允许出错后进行通信 否 是 是
ClearEventLog 消除事件记录 否 是 是
ClientToScreen 将客户点转换成屏幕坐标 是 是 是
ClipCursor 将光标限制在矩形内 是 是 是
CloseClipboard 关闭剪贴板 是 是 是
CloseDesktop 否 是 是
CloseDriver 光闭可装入的多媒体驱动程序 是 是 是
CloseEnhMetaFile 光闭增强型图元文件DC 否 是 是
CloseEventLog 光闭事件记录句柄 否 是 是
CloseFigure 光闭路径中的一个数 否 是 是
CloseHandle 关闭打开的对象句柄 否 是 是
CloseMetaFile 关闭WINDOWS图元文件DC 是 是 是
ClosePrinter 关闭打开的打印机 否 是 是
CloseServiceHandle 关闭Service Control Manager对象 否 是 是
CloseWindow 最小化窗口 是 是 是
CloseWindowStation 否 是 是
ColorMatchToTarget 控件预览设备描述表 否 是 是
CombineRgn 将两个区域合成一个区域 是 是 是
CombineTransform 将两个变换式结合在一起 否 是 是
CommConfigDialog 否 是 是
CommDlgExtendedError 返回出错数据 否 是 是
CommandLineToArgv 否 是 是
CompareFileTime 比较两个64位文件时间 否 是 是
CompareString 比较两个局部指定字符串 否 是 是
ConfigurePort 配置打印机端口 否 是 是
ConnectNamedPipe 等待要连接的客户机 否 是 是
ConnectToPrinterDlg 显示浏览对话并连接网络打印机 否 是 是
ContinueDebugEvent 使调试线索继续 否 是 是
ControlService 向服务器发送控件 否 是 是
ConvertDefaultLocale 将缺省局部转换为实际的局部值 否 是 是
CopyAcceleratorTable 复制一个加速表 否 是 是
CopyCursor 复制一个光标 是 是 是
CopyEnhMetaFile 复制增强型图元文件 否 是 是
CopyFile 复制文件 否 是 是
CopyIcon 复制图标 是 是 是
CopyImage 否 是 是
CopyLZFile 否 是 是
CopyMetaFile 复制Windows图元文件 是 是 是
CopyRect 复制矩形大小 是 是 是
CopySid 将SID复制到缓冲区中 否 是 是
CountClipboardFormats 返回剪贴板格式的数量 是 是 是
CreateAcceleratorTable 建立加速表 否 是 是
CreateBitmap 建立独立于设备的内存位图 是 是 是
CreateBitmapIndirect 用BITMAP结构建立位图 是 是 是
CreateBrushIndirect 用指定属性建立一个刷子 是 是 是
CreateCaret 为系统脱字号建立新的形状 是 是 是
CreateColorSpace 建立逻辑色影区域 否 是 是
CreateCompatibleBitmap 建立与DC相兼容的位图 是 是 是
CreateCompatibleDC 建立与指定DC相兼容的DC 是 是 是
CreateConsoleScreenBuffer 将句柄返回给新的屏幕缓冲区 否 是 是
CreateCursor 用指定的尺寸建立一个光标 是 是 是
CreateDC 建立设备描述表 是 是 是
CreateDIBPatternBrush 从DIB中建立图案刷子 是 是 是
CreateDIBPatternBrushPt 从位图中建立逻辑刷子 否 是 是
CreateDIBSection 否 是 是
CreateDIBitmap 从DIB spec中建立位图句柄 是 是 是
CreateDesktop 否 是 是
CreateDialogIndirectParam 从内存模块中建立非模态对话框 否 是 是
CreateDialogParam 建立非模态对话框 否 是 是
CreateDirectory 建立一个新目录 否 是 是
CreateDirectoryEx 用模板属性建立一个目录 否 是 是
CreateDiscardableBitmap 建立可放弃位图 是 是 是
CreateEllipticRgn 建立椭圆区域 是 是 是
CreateEllipticRgnIndirect 建立椭圆区域 是 是 是
CreateEnhMetaFile 建立增强型图元文件DC 否 是 是
CreateEvent 返回新事件对象一个句柄 否 是 是
CreateFile 建立、打开或截断文件 否 是 是
CreateFileMapping 返回新文件映像对象一个句柄 否 是 是
CreateFont 建立逻辑字体 是 是 是
CreateFontIndirect 用LOGFONT结构建立字体 是 是 是
CreateHalftonePalette 为设备描述表建立中间色调调色板 否 是 是
CreateHatchBrush 建立影线刷子 是 是 是
CreateIC 建立信息上下文 是 是 是
CreateIcon 建立有指定属性的图标 是 是 是
CreateIconFromResource 建立图标或光标 否 是 是
CreateIconIndirect 建立图标或光标 否 是 是
CreateIoCompletionPort 否 是 是
CreateMDIWindow 建立新的MDI窗口 否 是 是
CreateMailslot 建立Mailsolt 否 是 是
CreateMenu 建立菜单 是 是 是
CreateMetaFile 建立WINDOWS图元DC 是 是 是
CreateMutex 将句柄返回给MUTEX对象 否 是 是
CreateNamedPipe 建立命名管道实例 否 是 是
CreatePalette 建立逻辑色彩调色板 是 是 是
CreatePatternBrush 从位图中建立图案刷子 是 是 是
CreatePen 建立逻辑画笔 是 是 是
CreatePenIndirect 用LOGPEN结构建立画笔 是 是 是
CreatePipe 建立匿名管道 否 是 是
CreatePolyPolygonRgn 建立由多边形组成的区域 是 是 是
CreatePolygonRgn 建立多边形区域 是 是 是
CreatePopupMenu 建立弹出式菜单 是 是 是
CreatePrivateObjectSecurity 分配并初始化保护SD 否 是 是
CreateProcess 建立新的进程和线索对象 否 是 是
CreateProcessAsUser 建立指定用户的新进程 否 是 是
CreateRectRgn 建立矩形区域 是 是 是
CreateRectRgnIndirect 用RECT结构建立一个区域 是 是 是
CreateRemoteThread 在另一进程中建立线索 否 是 是
CreateRoundRectRgn 建立圆角矩形 是 是 是
CreateScalableFontResource 建立带字体信息的资源文件 是 是 是
CreateSemaphore 将句柄返回给新的信号量 否 是 是
CreateService 建立服务对象 否 是 是
CreateSolidBrush 用指定颜色建立实心刷子 是 是 是
CreateTapePartition 建立新的磁带分区 否 是 是
CreateThread 建立新的线索 否 是 是
CreateWindowEx 建立窗口 是 是 是
DPtoLP 将设备坐标转换位逻辑坐标 是 是 是
DdeAbandonTransaction 取消异步交互 否 是 是
DdeAccessData 访问DDE数据对象 否 是 是
DdeAddData 向DDE数据对象中加入数据 否 是 是
DdeClientTransaction 开始DDE数据事务 否 是 是
DdeCmpStringHandles 比较两个DDE字符串句柄 否 是 是
DdeConnect 建立与服务器的对话 否 是 是
DdeConnectList 建立多个DDE对话 否 是 是
DdeCreateDataHandle 建立DDE数据句柄 否 是 是
DdeCreateStringHandle 建立DDE字符串句柄 否 是 是
DdeDisconnect 终止DDE对话 否 是 是
DdeDisconnectList 取消DDE对话表列 否 是 是
DdeEnableCallback 使能或取消一个或多个DDE对话 否 是 是
DdeFreeDataHandle 释放DDE数据对象 否 是 是
DdeFreeStringHandle 释放DDE字符串句柄 否 是 是
DdeGetData 将数据从DDE数据对象中复制到缓冲区 否 是 是
DdeGetLastError 返回由DDEML函数设置的出错代码 否 是 是
DdeImpersonateClient DDE服务器模拟客户机 否 是 是
DdeInitialize 用DDEML登记应用程序 否 是 是
DdeKeepStringHandle 为字符串句柄增加可用记录 否 是 是
DdeNameService 登记取消服务器名称 否 是 是
DdePostAdvise 提示服务器向客户机发送建议数据 否 是 是
DdeQueryConvInfo 返回关于DDE对话的信息 否 是 是
DdeQueryNextServer 在对话表列中获得下一个句柄 否 是 是
DdeQueryString 将字符串句柄文本复制到缓冲区 否 是 是
DdeReconnect 重建DDE对话 否 是 是
DdeSetQualityOfService 指明服务的DDE质量 否 是 是
DdeSetUserHandle 将用户定义句柄与事务建立关联 否 是 是
DdeUnaccessData 释放DDE数据对象 否 是 是
DdeUninitialize 释放应用程序的DDEML资源 否 是 是
DebugActiveProcess 连接调试进程 否 是 是
DebugBreak 建立断点 是 是 是
DefDlgProc 提供缺省窗口消息进程 是 是 是
DefDriverProc 定义缺省消息处理器 是 是 是
DefFrameProc 缺省MDI框架窗口消息进程 是 是 是
DefMDIChildProc 缺省MDI子窗口消息进程 是 是 是
DefWindowProc 调用缺省窗口过程 是 是 是
DeferWindowPos 更新窗口位置结构 是 是 是
DefineDosDevice 定义、重定义或删除DOS的设备名 否 是 是
DeleteAce 从已存在的ACL中删除ACE 否 是 是
DeleteAtom 删除一个原子 是 是 是
DeleteColorSpace 删除指定色彩空间 否 是 是
DeleteCriticalSection 删除临界部分 否 是 是
DeleteDC 删除设备描述表 是 是 是
DeleteEnhMetaFile 取消增强图元文件句柄 否 是 是
DeleteFile 删除文件 否 是 是
DeleteForm 删除打印机窗体层差 否 是 是
DeleteMenu 删除菜单项 是 是 是
DeleteMetaFile 取消WINDOWS图元文件句柄 是 是 是
DeleteMonitor 删除打印机监视器 否 是 是
DeleteObject 从内存删除一个对象 是 是 是
DeletePort 删除打印机端口 否 是 是
DeletePrintProcessor 删除打印机处理器 否 是 是
DeletePrintProvidor 删除打印机提供者 否 是 是
DeletePrinter 删除打印机服务器上的打印机 否 是 是
DeletePrinterConnection 删除与打印机的连接 否 是 是
DeletePrinterDriver 删除打印机驱动程序 否 是 是
DeleteService 从SC MANAGER数据库中删除服务 否 是 是
DeregisterEventSource 光闭事件句柄 否 是 是
DescribePixelFormat 否 是 是
DestroyAcceleratorTable 取消加速表 否 是 是
DestroyCaret 取消当前脱字号 是 是 是
DestroyCursor 取消CREATECURSOR建立的光标 是 是 是
DestroyIcon 取消由CREATEICON建立的图标 是 是 是
DestroyMenu 取消菜单并释放内存 是 是 是
DestroyPrivateObjectSecurity 删除被保护的服务器对象的SD 否 是 是
DestroyWindow 取消窗口 是 是 是
DeviceCapabilities 返回设备驱动程序的功能 否 是 是
DeviceIoControl 直接调用驱动程序 否 是 是
DialogBoxIndirectParam 从内存模块中建立对话框 否 是 是
DisableThreadLibraryCalls 否 是 是
DisconnectNamedPipe 切断命名管道的服务器终端 否 是 是
DispatchMessage 向窗口发送消息 是 是 是
DlgDirList 填充目录列表框 是 是 是
DlgDirListComboBox 填充目录列表框 是 是 是
DlgDirSelectComboBoxEx 从目录列表框中返回用户选择 是 是 是
DlgDirSelectEx 从目录列表框中返回用户选择 是 是 是
DoEnvironmentSubst 否 是 是
DocumentProperties 配置打印机设置 否 是 是
DosDateTimeToFileTime 将MS-DOS日期时间转换为64位格式 否 是 是
DragAcceptFiles 登记窗口是否接受托动文件的内容 否 是 是
DragDetect 否 是 是
DragFinish 释放分配用于托动文件的内容 否 是 是
DragObject 否 是 是
DragQueryFile 返回托动的文件名 否 是 是
DragQueryPoint 返回鼠标位置 否 是 是
DrawAnimatedRects 否 是 是
DrawCaption 否 是 是
DrawEdge 否 是 是
DrawEscape 实现非GDI可画图设备方法 否 是 是
DrawFocusRect 用焦点风格画矩形 是 是 是
DrawFrameControl 否 是 是
DrawIcon 在指定设备描述表中画一个图标 是 是 是
DrawIconEx 否 是 是
DrawMenuBar 重显示菜单栏 是 是 是
DrawState 否 是 是
DrawText 在矩形中画出已格式化文本 是 是 是
DrawTextEx 否 是 是
DrvGetModuleHandle 获得可安装驱动程序的例子句柄 否 是 是
DuplicateHandle 复制对象句柄 否 是 是
DuplicateIcon 否 是 是
DuplicateToken 复制访问令牌 否 是 是
Ellipse 画椭圆 是 是 是
EmptyClipboard 清空剪贴板并释放数据句柄 是 是 是
EnableMenuItem 使能、取消或使菜单项不可激活 是 是 是
EnableScrollBar 使能、取消滚动条 否 是 是
EnableWindow 设备窗口使能状态 是 是 是
EndDeferWindowPos 更新窗口的位置及大小 是 是 是
EndDialog 隐藏对话框 是 是 是
EndDoc 结束打印作业 是 是 是
EndDocPrinter 结束打印作业 否 是 是
EndPage 结束一页 是 是 是
EndPagePrinter 结束打印页 否 是 是
EndPaint 在指定窗口中标记图画结尾标志 是 是 是
EndPath 结束路径 否 是 是
EndUpdateResource 在可执行文件中结束资源更新 否 是 是
EnterCriticalSection 加入临界部分 否 是 是
EnumCalendarInfo 否 是 是
EnumChildWindows 将子窗口句柄传给回调函数 否 是 是
EnumClipboardFormats 返回CLIPBOARD格式 是 是 是
EnumDateFormats 枚举局部指定数据格式 否 是 是
EnumDependentServices 枚举依赖于设备的服务 否 是 是
EnumDesktopWindows 否 是 是
EnumDesktops 否 是 是
EnumEnhMetaFile 用增强图元文件返回GDI调用 否 是 是
EnumFontFamilies 返回指定家族的字体 否 是 是
EnumFontFamiliesEx 返回指定家族的字体 否 是 是
EnumFonts 枚举指定设备上的字体 否 是 是
EnumForms 枚举所支持的打印机窗体 否 是 是
EnumICMProfiles 枚举可用的颜色分布 否 是 是
EnumJobs 获取打印作业信息 否 是 是
EnumMetaFile 用WINDOWS图元文件返回GDI调用 否 是 是
EnumMonitors 枚举可用监视器 否 是 是
EnumObjects 枚举设备描述表中的画笔和刷子 否 是 是
EnumPorts 枚举可用打印机端口 否 是 是
EnumPrintProcessorDatatypes 枚举打印机所支持的数据类型 否 是 是
EnumPrintProcessors 枚举已安装的打印机处理器 否 是 是
EnumPrinterDrivers 枚举已安装的打印机驱动程序 否 是 是
EnumPrinterPropertySheets 否 是 是
EnumPrinters 否 是 是
EnumProps 返回窗口属性表列 否 是 是
EnumPropsEx 返回窗口属性表列 否 是 是
EnumResourceLanguages 列出语言资源 否 是 是
EnumResourceNames 列出资源名称 否 是 是
EnumResourceTypes 列出资源类型 否 是 是
EnumServicesStatus 枚举SC管理器数据库中的服务 否 是 是
EnumSystemCodePages 枚举已安装的可用系统代码页 否 是 是
EnumSystemLocales 枚举已安装的系统局部 否 是 是
EnumThreadWindows 返回线索窗口 否 是 是
EnumTimeFormats 枚举本地指定时间格式 否 是 是
EnumWindowStations 否 是 是
EqualPrefixSid 检查两个SLD前缀是否相等 否 是 是
EqualRect 确定两矩形是否相等待 是 是 是
EqualRgn 比较两区域是否相等 是 是 是
EqualSid 检查两SLD安全ID是否相等 否 是 是
EraseTape 删除磁带的指定段 否 是 是
Escape 允许访问设备 是 是 是
EscapeCommFunction 发送扩展COMM函数 是 是 是
ExcludeClipRect 改变剪裁区 是 是 是
ExcludeUpdateRgn 从剪裁区中排斥更新区域 是 是 是
ExitProcess 退出当前进程 否 是 是
ExitThread 退出当前线索 否 是 是
ExitWindows 关闭WINDOWS 是 是 是
ExitWindowsEx 关闭WINDOWS 否 是 是
ExpandEnvironmentStrings 扩充环境变量字符串 否 是 是
ExtCreatePen 建立逻辑画笔 否 是 是
ExtCreateRegion 从区域数据中建立一个区域 否 是 是
ExtEscape 允许访问私有设备 否 是 是
ExtFloodFill 用当前刷子填充区域 是 是 是
ExtSelectClipRgn 选择一块区域作为剪裁区 否 是 是
ExtTextOut 在矩形区域中输出一个字符串 是 是 是
ExtractAssociatedIcon 从文件或相关EXE中获取图标句柄 否 是 是
ExtractIcon 从可执行文件中返回图标句柄 否 是 是
ExtractIconEx 否 是 是
FatalAppExit 结束一个应用程序 否 是 是
FatalExit 向调试者返回控件 是 是 是
FileTimeToDosDateTime 将文件时间转换为MS-DOS日期 否 是 是
FileTimeToLocalFileTime 将UTC文件时间转换成本地文件时间 否 是 是
FileTimeToSystemTime 将64位时间转换为系统时间 否 是 是
FillConsoleOutputAttribute 将属性写入屏幕缓冲区 否 是 是
FillConsoleOutputCharacter 将字符写入屏幕缓冲区 否 是 是
FillPath 填充当前路径 否 是 是
FillRect 用指定刷子填充矩形区域 是 是 是
FillRgn 用刷子填充区域 是 是 是
FindAtom 从本地原子表中返回字符串原子 是 是 是
FindClose 关闭查找文件描述表 否 是 是
FindCloseChangeNotification 光闭文件或目录修改等待 否 是 是
FindClosePrinterChangeNotification 否 是 是
FindEnvironmentString 否 是 是
FindExecutable 返回可执行文件名及句柄 否 是 是
FindFirstChangeNotification 设置文件或目录修改等待 否 是 是
FindFirstFile 查找第一个匹配文件 否 是 是
FindFirstFreeAce 返回指向第一个空闲ACL字节的指针 否 是 是
FindFirstPrinterChangeNotification 否 是 是
FindNextChangeNotification 请求对下一个文件或目录变化的通知 否 是 是
FindNextFile 查找下一个匹配文件 否 是 是
FindNextPrinterChangeNotification 否 是 是
FindResource 在模块中寻找资源 是 是 是
FindResourceEx 在模块中寻找资源 否 是 是
FindText 建立查找文本对话框 否 是 是
FindWindow 返回一个与类和窗口名相关的窗口句柄 是 是 是
FindWindowEx 否 是 是
FixBrushOrgEx 否 是 是
FlashWindow 使窗口闪烁一次 是 是 是
FlattenPath 将弧变为线 否 是 是
FloodFill 用当前刷子填充区域 是 是 是
FlushConsoleInputBuffer 清除控制台输入缓冲区 否 是 是
FlushFileBuffers 清除文件缓冲区 否 是 是
FlushInstructionCache 填满指令缓冲区 否 是 是
FlushViewOfFile 用映像视图填充文件 否 是 是
FoldString 变换字符串 否 是 是
FormatMessage 格式化消息字符串 否 是 是
FrameRect 用指定刷子画一个窗口边框 否 是 是
FrameRgn 在区域四周画出边框 是 是 是
FreeConsole 释放控制台 否 是 是
FreeDDElParam 释放DDE消息IPARAM 否 是 是
FreeEnvironmentStrings 否 是 是
FreeLibrary 卸载库模块 是 是 是
FreeLibraryAndExitThread 否 是 是
FreeResource 否 是 是
FreeSid 释放SID 否 是 是
GdiComment 向增强型图元文件中加入注释 否 是 是
GdiFlush 使当前GDI闪烁 否 是 是
GdiGetBatchLimit 返回缓冲GDI函数数量 否 是 是
GdiSetBatchLimit 设置缓冲GDI函数数量 否 是 是
GenerateConsoleCtrlEvent 向控制台进程组发送信号 否 是 是
GetACP 获取ANSI系统代码页 否 是 是
GetAce 返回指向ACL中的ACE的指针 否 是 是
GetAclInformation 返回访问控件表信息 否 是 是
GetActiveWindow 返回活动窗口句柄 是 是 是
GetArcDirection 返回弧和矩形的绘画方向 否 是 是
GetAspectRatioFilterEx 返回当前ASPECT-RATIO过滤器 是 是 是
GetAsyncKeyState 确定键的状态 是 是 是
GetAtomName 返回本地原子字符串 是 是 是
GetBinaryType 确定二进制可执行文件类型 否 是 是
GetBitmapBits 将位图复制到缓冲区 否 是 是
GetBitmapDimensionEx 返回位图宽和高 否 是 是
GetBkColor 返回当前背景色 否 是 是
GetBkMode 返回背景模式 否 是 是
GetBoundsRect 返回当前相邻矩形 否 是 是
GetBrushOrgEx 否 是 是
GetCPInfo 获取代码页信息 否 是 是
GetCapture 否 是 是
GetCaretBlinkTime 返回脱字号闪烁时间 否 是 是
GetCaretPos 返回当前脱字号位置 否 是 是
GetCharABCWidths 返回字符宽度 否 是 是
GetCharABCWidthsFloat 返回字符宽度 否 是 是
GetCharWidth 返回字符宽度 否 是 是
GetCharWidth32 返回字符宽度 否 是 是
GetCharWidthFloat 返回部分字符宽度 否 是 是
GetCharacterPlacement 获取字符串属性数据 否 是 是
GetClassInfo 返回窗口类信息 否 是 是
GetClassLong 返回窗口类数据 否 是 是
GetClassName 返回窗口类名称 否 是 是
GetClassWord 返回窗口类内存字 否 是 是
GetClientRect 返回窗口客户区坐标 否 是 是
GetClipBox 取剪裁区域框 否 是 是
GetClipCursor 返回限制光标的矩形的坐标 否 是 是
GetClipRgn 返回当前剪辑域 否 是 是
GetClipboardData 返回剪贴板数据的句柄 否 是 是
GetClipboardFormatName 返回登录的剪贴板格式名 否 是 是
GetClipboardOwner 返回剪贴板所有者窗口句柄 否 是 是
GetClipboardViewer 返回第一个剪贴板浏览窗口句柄 否 是 是
GetColorAdjustment 获取设备描述表调整值 否 是 是
GetColorSpace 获取指定色彩空间 否 是 是
GetCommConfig 否 是 是
GetCommMask 返回COMM事件屏蔽 否 是 是
GetCommModemStatus 返回调制解调器控制登录值 否 是 是
GetCommProperties 返回COMM设备属性 否 是 是
GetCommState 返回COMM设备控制块 否 是 是
GetCommTimeouts 返回COMM设备超时特性值 否 是 是
GetCommandLine 返回指向命令行的指针 否 是 是
GetCompressedFileSize 否 是 是
GetComputerName 取回当前计算机名 否 是 是
GetConsoleCP 为控制台输入获取代码页 否 是 是
GetConsoleCursorInfo 返回光标大小 否 是 是
GetConsoleMode 返回控制台输入输出模式 否 是 是
GetConsoleOutputCP 为控制台输出获取代码页 否 是 是
GetConsoleScreenBufferInfo 返回屏幕缓冲区信息 否 是 是
GetConsoleTitle 返回控制台窗口标题 否 是 是
GetCurrencyFormat 否 是 是
GetCurrentDirectory 返回当前目录 否 是 是
GetCurrentObject 返回当前对象 否 是 是
GetCurrentPositionEx 返回逻辑单元位置 否 是 是
GetCurrentProcess 返回当前进程的句柄 否 是 是
GetCurrentProcessId 返回当前进程ID值 否 是 是
GetCurrentThread 返回当前线索的句柄 否 是 是
GetCurrentThreadId 返回当前线索ID值 否 是 是
GetCursor 返回当前光标的句柄 否 是 是
GetCursorPos 返回当前光标的位置 否 是 是
GetDC 返回窗口描述表句柄 否 是 是
GetDCEx 返回显示描述表的句柄 否 是 是
GetDCOrgEx 返回设备描述表的转换起点 否 是 是
GetDIBColorTable 否 是 是
GetDIBits 将DIB位复制到缓冲区中 否 是 是
GetDateFormat 获取本地日期格式 否 是 是
GetDefaultCommConfig 否 是 是
GetDesktopWindow 返回桌面窗口句柄 否 是 是
GetDeviceCaps 返回设备性能 否 是 是
GetDeviceGammaRamp 获取显示器的辉度系数 否 是 是
GetDialogBaseUnits 返回对话基础单元 否 是 是
GetDiskFreeSpace 返回空闲磁盘空间 否 是 是
GetDlgCtrlID 返回儿子窗口的ID值 否 是 是
GetDlgItem 返回对话框控件句柄 否 是 是
GetDlgItemInt 将对话框文本转换为整数 否 是 是
GetDlgItemText 返回对话框控件文本 否 是 是
GetDoubleClickTime 返回鼠标双击时间 否 是 是
GetDriveType 返回指定驱动器类型 否 是 是
GetDriverModuleHandle 返回驱动程序模块例子句柄 否 是 是
GetEnhMetaFile 建立增强图元文件 否 是 是
GetEnhMetaFileBits 将增强图元文件值复制到缓冲区 否 是 是
GetEnhMetaFileDescription 返回增强图元文件的标题及建立者 否 是 是
GetEnhMetaFileHeader 返回增强图元文件头 否 是 是
GetEnhMetaFilePaletteEntries 返回增强图元文件调色板入口 否 是 是
GetEnvironmentStrings 返回指向环境块的指针 否 是 是
GetEnvironmentVariable 返回过程环境变量 否 是 是
GetExitCodeProcess 返回过程中断代码 否 是 是
GetExitCodeThread 返回线索中断代码 否 是 是
GetExpandedName 取压缩文件的原文件名 是 是 是
GetFileAttributes 返回文件属性 否 是 是
GetFileInformationByHandle 返回文件信息 否 是 是
GetFileSecurity 获取文件或目录安全信息 否 是 是
GetFileSize 返回指定文件大小 否 是 是
GetFileTime 返回文件64位时间 否 是 是
GetFileTitle 返回文件名 否 是 是
GetFileType 返回文件类型 否 是 是
GetFileVersionInfo 返回文件的版本信息 否 是 是
GetFileVersionInfoSize 返回可用版本信息大小 否 是 是
GetFocus 返回当前焦点窗口句柄 是 是 是
GetFontData 返回字体数据 是 是 是
GetFontLanguageInfo 获取字体显示描述表的信息 否 是 是
GetForegroundWindow 返回前景窗口句柄 否 是 是
GetForm 获取打印机窗口信息 否 是 是
GetFullPathName 返回文件的路径名 否 是 是
GetGlyphOutline 取回轮廓数据 是 是 是
GetGraphicsMode 取回指定DC的图形模式 否 是 是
GetHandleInformation 否 是 是
GetICMProfile 返回设备场景的色彩映像 否 是 是
GetIconInfo 返回图标或光标信息 否 是 是
GetInputState 确定鼠标、键盘、定时器状态 是 是 是
GetJob 获取打印作业信息 否 是 是
GetKBCodePage 获取OEM系统代码页 是 是 是
GetKernelObjectSecurity 返回内核对象SD 否 是 是
GetKerningPairs 返回当前字体内核对 是 是 是
GetKeyNameText 返回代表键盘名字的字符串 是 是 是
GetKeyState 返回虚拟键的状态 是 是 是
GetKeyboardLayout 否 是 是
GetKeyboardLayoutList 否 是 是
GetKeyboardLayoutName 返回活动键盘版面名 否 是 是
GetKeyboardState 返回虚拟键盘状态 是 是 是
GetKeyboardType 返回键盘信息 是 是 是
GetLargestConsoleWindowSize 返回窗口尺寸的最大可能性 否 是 是
GetLastActivePopup 确定最近的活动弹出式窗口 是 是 是
GetLastError 返回扩充出错代码 否 是 是
GetLengthSid 返回SID长度 否 是 是
GetLocalTime 返回本地时间和日期 否 是 是
GetLocaleInfo 从记录中获取本机信息 否 是 是
GetLogColorSpace 获取逻辑色彩空间的信息 否 是 是
GetLogicalDriveStrings 返回合法驱动器字符串 否 是 是
GetLogicalDrives 指定合法驱动器 否 是 是
GetMailslotInfo 返回信箱信息 否 是 是
GetMapMode 返回映像模式 是 是 是
GetMenu 返回指定窗口的菜单句柄 是 是 是
GetMenuCheckMarkDimensions 返回缺省复选标记位图尺寸 是 是 是
GetMenuContextHelpId 否 是 是
GetMenuDefaultItem 否 是 是
GetMenuItemCount 返回菜单项数 是 是 是
GetMenuItemID 返回菜单项标识符 是 是 是
GetMenuItemInfo 否 是 是
GetMenuItemRect 否 是 是
GetMenuState 返回指定菜单项的菜单标记 是 是 是
GetMenuString 将菜单项字符串复制入缓冲区 是 是 是
GetMessage 从线索消息队列中返回一条消息 是 是 是
GetMessageExtraInfo 返回硬件消息的信息 是 是 是
GetMessagePos 返回最后消息的光标位置 是 是 是
GetMessageTime 返回最后消息的时间位置 是 是 是
GetMetaFile 建立WINDOWS图元文件 是 是 是
GetMetaFileBitsEx 将WINDOWS图元文件复制入缓冲区 否 是 是
GetMetaRgn 返回当前图元区域 否 是 是
GetMiterLimit 返回当前MITER-JOIN长度 否 是 是
GetModuleFileName 返回指定模块的路径 是 是 是
GetModuleHandle 返回指定模块的句柄 是 是 是
GetNamedPipeHandleState 返回命名管道句柄消息 否 是 是
GetNamedPipeInfo 返回命名管道句柄消息 否 是 是
GetNearestColor 返回最近的可用色彩 是 是 是
GetNearestPaletteIndex 返回最近的匹配色彩 是 是 是
GetNextDlgGroupItem 返回前或后一组控件的句柄 是 是 是
GetNextDlgTabItem 返回前或后一个WS_TABSTOP控件 是 是 是
GetNextWindow 返回前或后一窗口管理器窗口 是 是 是
GetNumberFormat 否 是 是
GetNumberOfConsoleInputEvents 返回控制台队列事件数 否 是 是
GetNumberOfConsoleMouseButtons 返回鼠标按钮数 否 是 是
GetNumberOfEventLogRecords 获取事件记录中的记录数 否 是 是
GetOEMCP 获取OEM系统代码页 否 是 是
GetObject 返回对象信息 是 是 是
GetObjectType 返回对象类型 否 是 是
GetOldestEventLogRecord 返回最早的记录数 否 是 是
GetOpenClipboardWindow 返回打开CLIPBOARD的窗口句柄 是 是 是
GetOpenFileName 建立文件名对话框 否 是 是
GetOutlineTextMetrics 返回TRUETYPE字体的公制类型 是 是 是
GetOverlappedResult 返回最后重叠结果 否 是 是
GetPaletteEntries 返回调色板入口范围 是 是 是
GetParent 返回父口句柄 是 是 是
GetPath 返回路径中的所有直线和曲线 否 是 是
GetPixel 返回指定像素的RGB值 是 是 是
GetPixelFormat 否 是 是
GetPolyFillMode 返回当前多边形填充模式 是 是 是
GetPrintProcessorDirectory 获取打印机驱动处理器路径 否 是 是
GetPrinter 获取打印机信息 否 是 是
GetPrinterData 获取打印机配置信息 否 是 是
GetPrinterDriver 获取打印机驱动程序信息 否 是 是
GetPrinterDriverDirectory 获取打印机驱动程序路径 否 是 是
GetPriorityClass 返回过程的优先级类 否 是 是
GetPriorityClipboardFormat 返回第一个CLIPBOARD格式 是 是 是
GetPrivateObjectSecurity 返回保护服务器对象SD 否 是 是
GetPrivateProfileInt 从私有文件中获取整数 是 是 是
GetPrivateProfileSection 返回私有键和值 否 是 是
GetPrivateProfileString 从私有文件中获取字符串 是 是 是
GetProcAddress 返回函数地址 否 是 是
GetProcessAffinityMask 获取任务可用的处理表列 否 是 是
GetProcessHeap 获取调用过程堆句柄 否 是 是
GetProcessHeaps 否 是 是
GetProcessShutdownParameters 返回过程停止参数 否 是 是
GetProcessTimes 获取过程计时器 否 是 是
GetProcessWindowStation 返回过程窗口站句柄 否 是 是
GetProcessWorkingSetSize 否 是 是
GetProfileInt 从WIN.INI中获取整数 是 是 是
GetProfileSection 从WIN.INI中返回关键字和值 否 是 是
GetProfileString 从WIN.INI中获取字符串 是 是 是
GetProp 从窗口属性表列中返回数据句柄 是 是 是
GetQueueStatus 确定消息队列内容 是 是 是
GetQueuedCompletionStatus 否 是 是
GetROP2 返回当前绘图模式 是 是 是
GetRasterizerCaps 返回系统TRUETYPE状态 是 是 是
GetRegionData 返回区域数据 否 是 是
GetRgnBox 返回区域边框矩形 是 是 是
GetSaveFileName 建立文件名保存对话框 否 是 是
GetScrollInfo 否 是 是
GetScrollPos 返回滑块位置 是 是 是
GetScrollRange 返回滑块运动范围 是 是 是
GetSecurityDescriptorControl 取回SD校正及控制信息 否 是 是
GetSecurityDescriptorDacl 返回SD离散ACL 否 是 是
GetSecurityDescriptorGroup 返回SD个人组信息 否 是 是
GetSecurityDescriptorLength 返回SD长度 否 是 是
GetSecurityDescriptorOwner 返回SD所有人 否 是 是
GetSecurityDescriptorSacl 返回SD系统ACL 否 是 是
GetServiceDisplayName 获取服务显示名称 否 是 是
GetServiceKeyName 获取服务登录关键名称 否 是 是
GetShortPathName 返回文件短路径 否 是 是
GetSidIdentifierAuthority 返回ID字段地址 否 是 是
GetSidLengthRequired 返回所需SID长度 否 是 是
GetSidSubAuthority 返回次规范数组地址 否 是 是
GetSidSubAuthorityCount 返回次字段地址 否 是 是
GetStartupInfo 获取当前过程的启始信息 否 是 是
GetStdHandle 返回标准I/O句柄 否 是 是
GetStockObject 返回常用画笔、刷子或字段的句柄 是 是 是
GetStretchBltMode 返回位图拉伸模式 是 是 是
GetStringTypeA 获取ANSI字符串类型 否 是 是
GetStringTypeEx 否 是 是
GetStringTypeW 获取UNICODE字符串类型 否 是 是
GetSubMenu 返回弹出式菜单句柄 是 是 是
GetSysColor 返回显示元素色彩 是 是 是
GetSysColorBrush 否 是 是
GetSystemDefaultLCID 获取系统缺省本地ID 否 是 是
GetSystemDefaultLangID 获取系统缺省语言ID 否 是 是
GetSystemDirectory 返回WINDOWS系统目录路径 是 是 是
GetSystemInfo 返回系统信息 否 是 是
GetSystemMenu 访问系统菜单 是 是 是
GetSystemMetrics 返回系统公制 是 是 是
GetSystemPaletteEntries 返回系统调色板入口 是 是 是
GetSystemPaletteUse 确定使用整个系统调色板 是 是 是
GetSystemPowerStatus 获取系统AC或DC电源状态 否 是 是
GetSystemTime 返回系统时间和日期 否 是 是
GetSystemTimeAdjustment 否 是 是
GetTabbedTextExtent 确定制表串大小 是 是 是
GetTapeParameters 返回磁带驱动器或介质信息 否 是 是
GetTapePosition 返回当前磁带位置 否 是 是
GetTapeStatus 返回磁带机状态 否 是 是
GetTempFileName 建立临时文件名 是 是 是
GetTempPath 返回临时文件路径 否 是 是
GetTextAlign 返回文本对齐标志 是 是 是
GetTextCharacterExtra 返回文本字符间隔 是 是 是
GetTextCharset 否 是 是
GetTextCharsetInfo 返回当前字体设置信息 否 是 是
GetTextColor 返回当前文本色彩 是 是 是
GetTextExtentExPoint 返回子字符串长度数组 否 是 是
GetTextExtentPoint 返回字符串大小 是 是 是
GetTextExtentPoint32 返回字符串大小 否 是 是
GetTextFace 返回当前字体的字样 是 是 是
GetTextMetrics 返回当前字体的公制 是 是 是
GetThreadContext 返回指定线索描述表 否 是 是
GetThreadDesktop 返回线索桌面句柄 否 是 是
GetThreadLocale 获取线索本地信息 否 是 是
GetThreadPriority 返回指定线索优先级 否 是 是
GetThreadSelectorEntry 返回线索描述入口 否 是 是
GetThreadTimes 返回线索计时信息 否 是 是
GetTickCount 返回WINDOWS运行时间 是 是 是
GetTimeFormat 获取本地指定的时间字符串 否 是 是
GetTimeZoneInformation 返回当前时区信息 否 是 是
GetTokenInformation 返回指定令牌信息 否 是 是
GetTopWindow 返回指定窗口的顶端儿子句柄 是 是 是
GetUpdateRect 返回窗口更新区域大小 是 是 是
GetUpdateRgn 返回窗口更新区域大小 是 是 是
GetUserDefaultLCID 获取用户缺省本地ID 否 是 是
GetUserDefaultLangID 获取用户缺省语言ID 否 是 是
GetUserName 返回用户名 否 是 是
GetUserObjectInformation 否 是 是
GetUserObjectSecurity 返回服务器对象SD信息 否 是 是
GetVersion 返回WINDOWS和操作系统版本 是 是 是
GetVersionEx 返回扩展操作系统版本信息 否 是 是
GetViewportExtEx 返回视窗宽度 是 是 是
GetViewportOrgEx 返回视口源 是 是 是
GetVolumeInformation 返回文件系统信息 否 是 是
GetWinMetaFileBits 返回WINDOWS格式的图元文件内容 否 是 是
GetWindow 返回指定窗口句柄 是 是 是
GetWindowContextHelpId 否 是 是
GetWindowDC 返回窗口设备厂描述表 是 是 是
GetWindowExtEx 返回窗口宽度 是 是 是
GetWindowLong 从附加窗口内存中返回长型数值 是 是 是
GetWindowOrgEx 返回窗口源 是 是 是
GetWindowPlacement 返回窗口显示状态及最小/最大位置 是 是 是
GetWindowRect 返回窗口坐标 是 是 是
GetWindowRgn 否 是 是
GetWindowText 将窗口工具栏文本复制到缓冲区 是 是 是
GetWindowTextLength 返回窗口工具栏文本长度 是 是 是
GetWindowThreadProcessId 返回窗口线索及过程ID 否 是 是
GetWindowWord 从附加窗口内存中返回字值 是 是 是
GetWindowsDirectory 返回窗口WINDOWS目录 是 是 是
GetWorldTransform 返回当前变换式 否 是 是
GlobalAddAtom 在系统原子表中加入字符串 是 是 是
GlobalAlloc 在堆中分配内存 是 是 是
GlobalCompact 否 是 是
GlobalDeleteAtom 从系统原子表中删除原子 是 是 是
GlobalFindAtom 从全局原子表中返回字符串原子 是 是 是
GlobalFix 否 是 是
GlobalFlags 返回全局内存块信息 是 是 是
GlobalFree 释放全局内存块 是 是 是
GlobalGetAtomName 返回全局原子字符串 是 是 是
GlobalHandle 将全局指针转换为句柄 是 是 是
GlobalLock 锁定内存对象并返回一个指针 是 是 是
GlobalMemoryStatus 检查内存状态 否 是 是
GlobalReAlloc 修改全局内存块大小/属性 是 是 是
GlobalSize 返回全局内存块大小 是 是 是
GlobalUnWire 否 是 是
GlobalUnfix 否 是 是
GlobalUnlock 开锁全局内存块 是 是 是
GlobalWire 否 是 是
GrayString 在指定位置画灰色文本 否 是 是
HeapAlloc 从堆中分配内存 否 是 是
HeapCompact 压缩内存堆 否 是 是
HeapCreate 建立堆 否 是 是
HeapDestroy 取消堆 否 是 是
HeapFree 释放从堆中分配的内存 否 是 是
HeapLock 锁定堆 否 是 是
HeapReAlloc 从堆中重分配内存 否 是 是
HeapSize 返回堆对象的大小 否 是 是
HeapUnlock 释放堆锁 否 是 是
HeapValidate 校验指定堆结构 否 是 是
HideCaret 隐藏脱字号 是 是 是
HiliteMenuItem 修改顶级菜单项高亮度 是 是 是
hread 否 是 是
hwrite 否 是 是
ImmAssociateContext 否 是 是
ImmConfigureIME 否 是 是
ImmCreateContext 否 是 是
ImmDestroyContext 否 是 是
ImmEnumRegisterWord 否 是 是
ImmEscape 否 是 是
ImmGetCandidateList 否 是 是
ImmGetCandidateListCount 否 是 是
ImmGetCandidateWindow 否 是 是
ImmGetCompositionFont 否 是 是
ImmGetCompositionString 否 是 是
ImmGetCompositionWindow 否 是 是
ImmGetContext 否 是 是
ImmGetConversionList 否 是 是
ImmGetConversionStatus 否 是 是
ImmGetDefaultIMEWnd 否 是 是
ImmGetDescription 否 是 是
ImmGetGuideLine 否 是 是
ImmGetIMEFileName 否 是 是
ImmGetOpenStatus 否 是 是
ImmGetProperty 否 是 是
ImmGetRegisterWordStyle 否 是 是
ImmGetStatusWindowPos 否 是 是
ImmGetVirtualKey 否 是 是
ImmInstallIME 否 是 是
ImmIsIME 否 是 是
ImmIsUIMessage 否 是 是
ImmNotifyIME 否 是 是
ImmRegisterWord 否 是 是
ImmReleaseContext 否 是 是
ImmSetCandidateWindow 否 是 是
ImmSetCompositionFont 否 是 是
ImmSetCompositionString 否 是 是
ImmSetCompositionWindow 否 是 是
ImmSetConversionStatus 否 是 是
ImmSetOpenStatus 否 是 是
ImmSetStatusWindowPos 否 是 是
ImmSimulateHotKey 否 是 是
ImmUnregisterWord 否 是 是
ImpersonateDdeClientWindow 模拟DDE客户窗口 否 是 是
ImpersonateLoggedOnUser 模拟指定用户 否 是 是
ImpersonateNamedPipeClient 管道服务器模拟客户 否 是 是
ImpersonateSelf 获取调用过程的模拟令牌 否 是 是
InSendMessage 确定窗口是否在进行SENDMESSAGE 是 是 是
InflateRect 改变矩形大小 是 是 是
InitAtomTable 初始化本地原子杂凑表 是 是 是
InitializeAcl 建立新的访问控件表 否 是 是
InitializeCriticalSection 初始化临界段对象 否 是 是
InitializeSecurityDescriptor 初始化安全描述 否 是 是
InitializeSid 初始化SID 否 是 是
InitiateSystemShutdown 关闭系统 否 是 是
InsertMenu 加入新菜单项 是 是 是
InsertMenuItem 否 是 是
InterlockedDecrement 减少LONG 否 是 是
InterlockedExchange 自动交换32位数值 否 是 是
InterlockedIncrement 增加LONG 否 是 是
IntersectClipRect 建立剪辑区域 是 是 是
IntersectRect 计算两矩形交叠处 是 是 是
InvalidateRect 在更新区域中加入一个矩形 是 是 是
InvalidateRgn 在更新区域加入一个区域 是 是 是
InvertRect 翻转矩形区域 是 是 是
InvertRgn 翻转区域颜色 是 是 是
IsBadCodePtr 确定读指针的合法性 否 是 是
IsBadHugeReadPtr 确定读指针的合法性 否 是 是
IsBadHugeWritePtr 确定进程是否有写动作 否 是 是
IsBadReadPtr 确定进程是否有读动作 是 是 是
IsBadStringPtr 确定字符串指针的合法性 是 是 是
IsBadWritePtr 确定写指针的合法性 是 是 是
IsCharAlpha 确定字符串是否是字母 是 是 是
IsCharAlphaNumeric 确定字符串是否是数字 是 是 是
IsCharLower 确定字符串是否是小写 是 是 是
IsCharUpper 确定字符串是否是大写 是 是 是
IsChild 确定窗口是否是儿子窗 是 是 是
IsClipboardFormatAvailable 确定格式是否可用 是 是 是
IsDBCSLeadByte 确定字符是否DBCS引导字节 是 是 是
IsDialogMessage 确定消息是否用于对话框 是 是 是
IsDlgButtonChecked 确定按钮控件状态 是 是 是
IsIconic 确定窗口是否被最小画 是 是 是
IsMenu 确定句柄是否是菜单 是 是 是
IsRectEmpty 确定矩形是否为空 是 是 是
IsTextUnicode 否 是 是
IsValidAcl 使访问控件表有效 否 是 是
IsValidCodePage 确定代码页是否有效 否 是 是
IsValidLocale 确定本地代码是否有效 否 是 是
IsValidSecurityDescriptor 使安全描述有效 否 是 是
IsValidSid 使SID有效 否 是 是
IsWindow 确定窗口句柄是否有效 是 是 是
IsWindowEnabled 确定窗口是否接收用户输入 是 是 是
IsWindowUnicode 确定窗口是否使用UNICODE 否 是 是
IsWindowVisible 确定窗口是否可见 是 是 是
IsZoomed 确定窗口是否最大化 是 是 是
joyGetDevCaps 确定操纵杆是否可用 否 是 是
joyGetNumDevs 返回操纵杆数目 否 是 是
joyGetPos 返回操纵杆位置及按钮活动 否 是 是
joyGetPosEx 返回操纵杆位置扩展信息 否 是 是
joyGetThreshold 返回操纵杆运动临界值 否 是 是
joyReleaseCapture 释放操纵杆捕获 否 是 是
joySetCapture 对指定窗口捕获操纵杆消息 否 是 是
joySetThreshold 设置操纵杆运动临界值 否 是 是
keybd_event 综合击键事件 否 是 是
KillTimer 中止定时器 是 是 是
lclose 否 是 是
lcreat 否 是 是
LCMapString 映像字符串 否 是 是
LPtoDP 将逻辑指针变为设备指针 是 是 是
LZClose 关闭文件 是 是 是
LZCopy 复制文件或压缩 是 是 是
LZDone 否 是 是
LZInit 初始化压缩数据结构 是 是 是
LZOpenFile 打开文件 是 是 是
LZRead 从压缩文件中读入数据 是 是 是
LZSeek 重定位文件中的指针 是 是 是
LZStart 否 是 是
LeaveCriticalSection 保留前一个输入临界段 否 是 是
LineDDA 计算线中的连续点 否 是 是
LineTo 从当前位置画一条线 是 是 是
llseek 否 是 是
LoadAccelerators 装入加速表 是 是 是
LoadBitmap 装入位图资源 是 是 是
LoadCursor 装入光标资源 是 是 是
LoadCursorFromFile 否 是 是
LoadIcon 装入图标资源 是 是 是
LoadImage 否 是 是
LoadKeyboardLayout 键盘布置装入内存 否 是 是
LoadLibrary 映像模块到进行地址空间 是 是 是
LoadLibraryEx 返回库模块句柄 否 是 是
LoadMenu 装入菜单资源 是 是 是
LoadMenuIndirect 获取菜单模板句柄 是 是 是
LoadModule 装入并运行程序 是 是 是
LoadResource 返回资源句柄 是 是 是
LoadString 装入字符串资源 是 是 是
LocalAlloc 从堆分配内存 是 是 是
LocalCompact 否 是 是
LocalFileTimeToFileTime 将本地文件时间转移为UTC文件时间 否 是 是
LocalFlags 返回本地内存块信息 是 是 是
LocalFree 释放本地内存信息 是 是 是
LocalHandle 返回本地指针句柄 是 是 是
LocalLock 锁定本地内存对象并返回指针 是 是 是
LocalReAlloc 修改本地内存大小及属性 是 是 是
LocalShrink 否 是 是
LocalSize 返回本地内存块大小 是 是 是
LocalUnlock 开锁本地内存块 是 是 是
LockFile 锁定一个字节范围 否 是 是
LockFileEx 锁定一个字节范围 否 是 是
LockResource 返回资源地址 是 是 是
LockServiceDatabase 锁定指定SC管理器数据库 否 是 是
LockWindowUpdate 禁止或使能在窗口中的绘画 是 是 是
LogonUser 登录用户 否 是 是
LookupAccountName 把帐户名转为SID 否 是 是
LookupAccountSid 把SID转为帐户名 否 是 是
LookupIconIdFromDirectory 返回图标或光标ID坐标 否 是 是
LookupIconIdFromDirectoryEx 否 是 是
LookupPrivilegeDisplayName 返回可见特权名 否 是 是
LookupPrivilegeName 返回可编程特权名 否 是 是
LookupPrivilegeValue 返回特权名LUID 否 是 是
lopen 否 是 是
lread 否 是 是
lstrcat 否 是 是
lstrcmp 比较两个字符串 是 是 是
lstrcmpi 比较两个字符串 是 是 是
lstrcpy 否 是 是
lstrcpyn 否 是 是
lstrlen 返回字符串中字符数 是 是 是
lwrite 否 是 是
MakeAbsoluteSD 建立独立SD 否 是 是
MakeSelfRelativeSD 建立自相关SD 否 是 是
MapDialogRect 将对话框映像至像素 是 是 是
MapGenericMask 映像对专用/标准的一般性访问 否 是 是
MapViewOfFile 将视图映像入地址空间 否 是 是
MapViewOfFileEx 将视图映像入地址空间 否 是 是
MapVirtualKey 转换虚拟关键字代码或扫描代码 是 是 是
MapVirtualKeyEx 否 是 是
MapWindowPoints 将点转换到另一坐标系统 是 是 是
MaskBlt 转换位图 否 是 是
mciExecute 执行MCI设备命令 否 是 是
mciGetCreatorTask 返回创建任务 否 是 是
mciGetDeviceID 返回设备名对应的ID 否 是 是
mciGetDeviceIDFromElementID 用元素引用返回设备ID 否 是 是
mciGetErrorString 返回MCI出错代码的文本描述 否 是 是
mciGetYieldProc 获取过程地址 否 是 是
mciSendCommand 向MCI设备发出一条命令消息 否 是 是
mciSendString 向MCI设备发出一条命令字符串 否 是 是
mciSetYieldProc 设置过程地址 否 是 是
MenuItemFromPoint 否 是 是
MessageBeep 产生声音 是 是 是
MessageBox 建立消息框窗体 是 是 是
MessageBoxEx 建立消息框窗体 否 是 是
MessageBoxIndirect 否 是 是
midiConnect 连接MIDI设备 否 是 是
midiDisconnect 断开MIDI设备 否 是 是
midiInAddBuffer 向MIDI设备发送输入缓冲 否 是 是
midiInClose 关闭MIDI输入设备 否 是 是
midiInGetDevCaps 确定MIDI设备性能 否 是 是
midiInGetErrorText 返回MIDI出错代码的文本描述 否 是 是
midiInGetID 返回MIDI设备句柄ID 否 是 是
midiInGetNumDevs 返回MIDI设备数量 否 是 是
midiInMessage 向MIDI设备驱动程序发送消息 否 是 是
midiInOpen 打开MIDI设备 否 是 是
midiInPrepareHeader 准备MIDI输入缓冲区 否 是 是
midiInReset 结束MIDI输入和标准输入缓冲区 否 是 是
midiInStart 开始MIDI输入设备 否 是 是
midiInStop 结束MIDI输入 否 是 是
midiInUnprepareHeader 清除预备头 否 是 是
midiOutCacheDrumPatches 预装入MIDI碰撞修正码 否 是 是
midiOutCachePatches 预装入MIDI修正码 否 是 是
midiOutClose 关闭MIDI输出设备 否 是 是
midiOutGetDevCaps 返回MIDI输出设备性能 否 是 是
midiOutGetErrorText 返回MIDI输出出错文本 否 是 是
midiOutGetID 返回MIDI输出设备ID 否 是 是
midiOutGetNumDevs 获取MIDI输出设备数量 否 是 是
midiOutGetVolume 返回MIDI输出设备卷 否 是 是
midiOutLongMsg 发送系统专用MIDI消息 否 是 是
midiOutMessage 向MIDI设备驱动程序发送消息 否 是 是
midiOutOpen 打开MIDI输出设备 否 是 是
midiOutPrepareHeader 准备MIDI输出数据块 否 是 是
midiOutReset 结束MIDI输出和标记缓冲区 否 是 是
midiOutSetVolume 设置MIDI输出设备卷 否 是 是
midiOutShortMsg 向MIDI输出设备发送短消息 否 是 是
midiOutUnprepareHeader 消除MIDI输出头 否 是 是
midiStreamClose 关闭打开的MIDI流 否 是 是
midiStreamOpen 打开MIDI流 否 是 是
midiStreamOut 向MIDI流发送数据 否 是 是
midiStreamPause 暂停MIDI流 否 是 是
midiStreamPosition 获取MIDI流当前位置 否 是 是
midiStreamProperty 获取MIDI流属性 否 是 是
midiStreamRestart 重启动指定MIDI流 否 是 是
midiStreamStop 停止播放MIDI流 否 是 是
mixerClose 关闭混合设备 否 是 是
mixerGetControlDetails 获取指定混合器控件 否 是 是
mixerGetDevCaps 获取混合器性能 否 是 是
mixerGetID 获取混合器ID值 否 是 是
mixerGetLineControls 返回混合器线控件 否 是 是
mixerGetLineInfo 获取混合器信息 否 是 是
mixerGetNumDevs 获取当前混合设备数量 否 是 是
mixerMessage 向混合设备发送消息 否 是 是
mixerOpen 打开混合设备 否 是 是
mixerSetControlDetails 放置混合器控件 否 是 是
mmioAdvance 直接I/O缓冲 否 是 是
mmioAscend 超出RIFF块 否 是 是
mmioClose 关闭MM文件 否 是 是
mmioCreateChunk 建立RIFF文件块 否 是 是
mmioDescend 减少RIFF块 否 是 是
mmioFlush 将MM I/O缓冲区转换至磁盘 否 是 是
mmioGetInfo 返回MM文件信息 否 是 是
mmioInstallIOProcA 装入及删除自定义I/O过程 否 是 是
mmioOpen 打开多媒体文件 否 是 是
mmioRead 读入文件 否 是 是
mmioRename 重命名多媒体文件名 否 是 是
mmioSeek 改变当前文件位置 否 是 是
mmioSendMessage 向I/O过程发送消息 否 是 是
mmioSetBuffer 控制I/O缓冲 否 是 是
mmioSetInfo 设置文件信息 否 是 是
mmioStringToFOURCC 将字符串变为四个字符代码 否 是 是
mmioWrite 写文件 否 是 是
mmsystemGetVersion 返回MM软件版本 否 是 是
ModifyMenu 改变菜单项 是 是 是
ModifyWorldTransform 改变世界变换式 否 是 是
mouse_event 记录鼠标事件 否 是 是
MoveFile 更名文件 否 是 是
MoveFileEx 更名文件 否 是 是
MoveToEx 移动当前位置 是 是 是
MoveWindow 改变窗口位置及大小 是 是 是
MsgWaitForMultipleObjects 等待多个对象句柄 否 是 是
MulDiv 将两数相乘并并除以结果 是 是 是
MultiByteToWideChar 将多媒体字符串映像为通配字符串 否 是 是
Netbios 运行指定NCB 否 是 是
NotifyBootConfigStatus 通知响应引导配置 否 是 是
NotifyChangeEventLog 否 是 是
Api函数名 函数说明 WIN16可用 WIN95可用 WINNT可用
ObjectCloseAuditAlarm 删除对象时产生审查/警报 否 是 是
ObjectOpenAuditAlarm 访问对象时产生审查/警报 否 是 是
ObjectPrivilegeAuditAlarm 进行特权操作时产生审查/警报 否 是 是
OemKeyScan 将OEM ASCII映像为扫描码 是 是 是
OemToChar 转换OEM字符串 否 是 是
OemToCharBuff 转换OEM字符串 否 是 是
OffsetClipRgn 移动剪辑区 是 是 是
OffsetRect 用偏移量移动矩形 是 是 是
OffsetRgn 用指定偏移量移动区域 是 是 是
OffsetViewportOrgEx 移动视口区域 是 是 是
OffsetWindowOrgEx 移动窗口区域 是 是 是
OpenBackupEventLog 打开备份事件句柄 否 是 是
OpenClipboard 打开CLIPBOARD 是 是 是
OpenDesktop 否 是 是
OpenDriver 打开可安装驱动程序 是 是 是
OpenEvent 打开事件对象 否 是 是
OpenEventLog 打开事件登记句柄 否 是 是
OpenFile 建立、打开或删除文件 是 是 是
OpenFileMapping 打开命名文件的映像对象 否 是 是
OpenIcon 激活最小化窗口 是 是 是
OpenInputDesktop 否 是 是
OpenMutex 打开命名MUTEX对象 否 是 是
OpenPrinter 获取指定打印机的句柄 否 是 是
OpenProcess 将句柄返回给过程对象 否 是 是
OpenProcessToken 打开过程令牌对象 否 是 是
OpenSCManager 连接服务控件管理器 否 是 是
OpenSemaphore 打开命名信号量对象 否 是 是
OpenService 打开服务 否 是 是
OpenThreadToken 打开线索令牌对象 否 是 是
OpenWindowStation 否 是 是
OutputDebugStr 否 是 是
OutputDebugString 向调试发送字符串 是 是 是
PackDDElParam 将数据打包装入DDE消息IPARAM 否 是 是
PageSetupDlg 建立并显示页设置对话框 否 是 是
PaintDesktop 否 是 是
PaintRgn 用设备描述表中的刷子填充区域 是 是 是
PatBlt 建立位图图案 是 是 是
PathToRegion 建立区域 否 是 是
PeekMessage 检查消息队列 是 是 是
PeekNamedPipe 预显示管道队列数据 否 是 是
Pie 绘制饼状锲形图 是 是 是
PlayEnhMetaFile 运行增强图元文件 否 是 是
PlayEnhMetaFileRecord 运行增强图元文件记录 否 是 是
PlayMetaFile 运行WINDOWS图元文件到DC 是 是 是
PlayMetaFileRecord 运行WINDOWS图元文件记录 是 是 是
PlaySound 播放声音文件 否 是 是
PlgBlt 传输像素 否 是 是
PolyBezier 画BEZIER曲线 否 是 是
PolyBezierTo 画BEZIER曲线 否 是 是
PolyDraw 画一系列直线及BEZIER曲线 否 是 是
PolyPolygon 画一系列多边形 是 是 是
PolyPolyline 画相连线段 否 是 是
PolyTextOut 书写字符串 否 是 是
Polygon 画多边形 是 是 是
Polyline 画线段 是 是 是
PolylineTo 画一条或多条直线 否 是 是
PostMessage 将消息加入线索消息队列 是 是 是
PostQuitMessage 通知WINDOWS线索将中断 是 是 是
PostThreadMessage 向线索发出消息 否 是 是
PrepareTape 准备磁带设备 否 是 是
PrintDlg 建立打印文本对话框 否 是 是
PrinterMessageBox 显示打印作业出错信息 否 是 是
PrinterProperties 修改打印机属性 否 是 是
PrivilegeCheck 检查特权安全描述表 否 是 是
PrivilegedServiceAuditAlarm 产生特权系统服务声音警报 否 是 是
PtInRect 确定点是否在矩形内 是 是 是
PtInRegion 否 是 是
PtVisible 查询点是否在剪辑区域内 是 是 是
PulseEvent 设置并复位事件 否 是 是
PurgeComm 消除通信队列 否 是 是
QueryDosDevice 获取DOS设备名信息 否 是 是
QueryPerformanceCounter 获取计数值 否 是 是
QueryPerformanceFrequency 返回计数频率 否 是 是
QueryServiceConfig 获取服务配置参数 否 是 是
QueryServiceLockStatus 获取服务数据库锁定状态 否 是 是
QueryServiceObjectSecurity 获取服务对象安全描述 否 是 是
QueryServiceStatus 获取服务状态 否 是 是
RaiseException 建立异常条件 否 是 是
ReadConsole 读控制台输入数据 否 是 是
ReadConsoleOutput 读屏幕缓冲区数据 否 是 是
ReadConsoleOutputAttribute 读控制台属性字符串 否 是 是
ReadConsoleOutputCharacter 读屏幕缓冲区字符串 否 是 是
ReadEventLog 读事件记录 否 是 是
ReadFile 读文件 否 是 是
ReadFileEx 异步读文件 否 是 是
ReadPrinter 读打印机数据 否 是 是
ReadProcessMemory 在进程中读内存 否 是 是
RealizePalette 将逻辑调色板映像为系统调色板 是 是 是
RectInRegion 查询矩形是否有重叠区域 是 是 是
RectVisible 查询矩形是否有剪辑区中 是 是 是
Rectangle 画一个矩形 是 是 是
RedrawWindow 更新客户窗口 是 是 是
RegCloseKey 关闭登录关键字 否 是 是
RegConnectRegistry 连接远程登录 否 是 是
RegCreateKey 建立关键字 否 是 是
RegCreateKeyEx 建立关键字 否 是 是
RegDeleteKey 删除关键字 否 是 是
RegDeleteValue 从登录关键字中删除一个值 否 是 是
RegEnumKey 列举指定关键字的子关键字 否 是 是
RegEnumKeyEx 列举指定关键字的子关键字 否 是 是
RegEnumValue 列举指定关键字的值 否 是 是
RegFlushKey 写入关键字 否 是 是
RegGetKeySecurity 获取登录关键安全属性 否 是 是
RegLoadKey 登记关键字和子关键字 否 是 是
RegNotifyChangeKeyValue 显示登记关键字的变化 否 是 是
RegOpenKey 打开关键字 否 是 是
RegOpenKeyEx 打开关键字 否 是 是
RegQueryInfoKey 返回登录字信息 否 是 是
RegQueryValue 返回指定关键字名 否 是 是
RegQueryValueEx 返回关键字的类型和值 否 是 是
RegReplaceKey 更改关键字 否 是 是
RegRestoreKey 登录保存树 否 是 是
RegSaveKey 将登录保存了的树存入文件 否 是 是
RegSetKeySecurity 设置登录关键字的安全属性 否 是 是
RegSetValue 将文本字符串与指定关键字关联 否 是 是
RegSetValueEx 将文本字符串与指定关键字关联 否 是 是
RegUnLoadKey 从记录中卸载关键字 否 是 是
RegisterClass 登记窗口类 否 是 是
RegisterClassEx 否 是 是
RegisterClipboardFormat 登记新的CLIPBOARD格式 是 是 是
RegisterEventSource 返回登记的事件记录句柄 否 是 是
RegisterHotKey 登记热键 否 是 是
RegisterServiceCtrlHandler 登记服务控制请求句柄 否 是 是
RegisterWindowMessage 定义新的窗口消息 是 是 是
ReleaseCapture 释放鼠标捕获 是 是 是
ReleaseDC 释放设备描述表 是 是 是
ReleaseMutex 释放公制对象 否 是 是
ReleaseSemaphore 释放信号量对象 否 是 是
RemoveDirectory 删除目录 否 是 是
RemoveFontResource 删除字体资源 是 是 是
RemoveMenu 删除菜单项和弹出式菜单 是 是 是
RemoveProp 删除属性列入口 是 是 是
ReplaceText 建立文本对话框 否 是 是
ReplyMessage 响应通过SENDMESSAGE发送的消息 是 是 是
ReportEvent 写入事件记录项目 否 是 是
ResetDC 更新设备描述表 否 是 是
ResetEvent 复位事件对象 否 是 是
ResetPrinter 设置打印数据类型和设备模式值 否 是 是
ResizePalette 修改逻辑调色板大小 是 是 是
RestoreDC 恢复设备描述表 是 是 是
ResumeThread 开始暂停的线索 否 是 是
ReuseDDElParam 重利用DDE消息IPARAM 否 是 是
RevertToSelf 停止模拟 否 是 是
RoundRect 画圆角矩形 是 是 是
SHAppBarMessage 设置任务栏消息 否 是 是
SHFileOperation 执行系统文件对象的操作 否 是 是
SHFreeNameMappings 释放文件名映像对象 否 是 是
SHGetFileInfo 获取工作台外壳文件夹界面 否 是 是
SHGetNewLinkInfo 否 是 是
SaveDC 保存设备描述表 是 是 是
ScaleViewportExtEx 调整视口大小 是 是 是
ScaleWindowExtEx 调整窗口大小 是 是 是
ScheduleJob 调度作业 否 是 是
ScreenToClient 将屏幕点转换为客户坐标 是 是 是
ScrollConsoleScreenBuffer 滚动屏幕缓冲区中的数据 否 是 是
ScrollDC 水平或垂直移动矩形 是 是 是
ScrollWindow 移动窗口客户区 是 是 是
ScrollWindowEx 移动窗口客户区 是 是 是
SearchPath 查找文件 否 是 是
SelectClipPath 选定当前路径为剪辑区域 否 是 是
SelectClipRgn 选定剪辑区域 是 是 是
SelectObject 选定对象 是 是 是
SelectPalette 选定调色板 是 是 是
SendDlgItemMessage 向对话框控件发送消息 是 是 是
SendDriverMessage 向可安装驱动程序发送消息 是 是 是
SendMessage 向窗口进程发送消息 是 是 是
SendMessageCallback 向窗口进程发送消息 否 是 是
SendMessageTimeout 向窗口进程发送消息 否 是 是
SendNotifyMessage 向窗口进程发送消息 否 是 是
SetAbortProc 设备打印作业的放弃函数 否 是 是
SetAclInformation 设备ACL信息 否 是 是
SetActiveWindow 激活顶级窗口 是 是 是
SetArcDirection 设置画弧方向 否 是 是
SetBitmapBits 设置位图的值 是 是 是
SetBitmapDimensionEx 设置位图的宽和高 是 是 是
SetBkColor 设置当前背景色 是 是 是
SetBkMode 设置背景模式 是 是 是
SetBoundsRect 控制相邻矩形重叠 是 是 是
SetBrushOrgEx 设置当前刷子的起点 否 是 是
SetCapture 设置鼠标捕获 是 是 是
SetCaretBlinkTime 设置脱字号闪烁时间 是 是 是
SetCaretPos 设置脱字号位置 是 是 是
SetClassLong 设置附加类内存长数值 是 是 是
SetClassWord 设置附加类内存字数值 是 是 是
SetClipboardData 设置剪贴板中数据 是 是 是
SetClipboardViewer 在CLIPBOARD浏览器链中加入窗口 是 是 是
SetColorAdjustment 调整颜色 否 是 是
SetColorSpace 设置颜色空间 否 是 是
SetCommBreak 挂起字符传送 是 是 是
SetCommConfig 否 是 是
SetCommMask 设置通信事件屏蔽 否 是 是
SetCommState 设置通信设备状态 是 是 是
SetCommTimeouts 设置通信读写时间范围 否 是 是
SetComputerName 设置当前计算机名称 否 是 是
SetConsoleActiveScreenBuffer 改变显示屏幕缓冲区 否 是 是
SetConsoleCP 设置控制台输入代码页 否 是 是
SetConsoleCtrlHandler 设置控制台进程的单个句柄 否 是 是
SetConsoleCursorInfo 设置控制台光标大小 否 是 是
SetConsoleCursorPosition 设置控制台光标位置 否 是 是
SetConsoleMode 设置控制台输入输出模式 否 是 是
SetConsoleOutputCP 设置控制台输出代码页 否 是 是
SetConsoleScreenBufferSize 改变屏幕缓冲区大小 否 是 是
SetConsoleTextAttribute 设置屏幕文本属性 否 是 是
SetConsoleTitle 设置控制台窗口标题字符串 否 是 是
SetConsoleWindowInfo 设置控制台窗口大小 否 是 是
SetCurrentDirectory 改变当前目录 否 是 是
SetCursor 改变鼠标指针 是 是 是
SetCursorPos 设置鼠标指针位置 是 是 是
SetDIBColorTable 否 是 是
SetDIBits 设置位图位 是 是 是
SetDIBitsToDevice 设置DIB位到设备 是 是 是
SetDebugErrorLevel 设置调试事件出错等级 否 是 是
SetDefaultCommConfig 否 是 是
SetDeviceGammaRamp 设置辉等级 否 是 是
SetDlgItemInt 将整数转换为对话框文本字符串 是 是 是
SetDlgItemText 设置对话框标题或项目 是 是 是
SetDoubleClickTime 设置鼠标双击时间 是 是 是
SetEndOfFile 设置文本尾指针 否 是 是
SetEnhMetaFileBits 建立增强图元文件 否 是 是
SetEnvironmentVariable 设置环境变量 否 是 是
SetErrorMode 设置出错模式 是 是 是
SetEvent 设置事件对象 否 是 是
SetFileApisToANSI 否 是 是
SetFileApisToOEM 设置文件API为OEM字符集 否 是 是
SetFileAttributes 设置文件属性 否 是 是
SetFilePointer 设置文件指针位置 否 是 是
SetFileSecurity 设置文件或目录安全属性 否 是 是
SetFileTime 设置文件的64位时间 否 是 是
SetFocus 设置键盘焦点 是 是 是
SetForegroundWindow 将窗口置于前台 否 是 是
SetForm 设置窗体信息 否 是 是
SetGraphicsMode 设置图形模式 否 是 是
SetHandleCount 设置可用文件句柄 是 是 是
SetHandleInformation 否 是 是
SetICMMode 设置图形颜色匹配 否 是 是
SetICMProfile 设置颜色外观 否 是 是
SetJob 设置打印作业信息 否 是 是
SetKernelObjectSecurity 设置内核对象安全属性 否 是 是
SetKeyboardState 设置键盘状态表 是 是 是
SetLastError 设置扩展出错代码 否 是 是
SetLastErrorEx 设置扩展出错代码及类型 否 是 是
SetLocalTime 设置本地时间 否 是 是
SetLocaleInfo 否 是 是
SetMailslotInfo 设置信箱读时间 否 是 是
SetMapMode 设置映像模式 是 是 是
SetMapperFlags 设置字体映像标志 是 是 是
SetMenu 设置窗口菜单 是 是 是
SetMenuContextHelpId 否 是 是
SetMenuDefaultItem 否 是 是
SetMenuItemBitmaps 将复选标记位图于菜单项关联 是 是 是
SetMenuItemInfo 否 是 是
SetMessageExtraInfo 否 是 是
SetMessageQueue 否 是 是
SetMetaFileBitsEx 建立WINDOWS图元文件 否 是 是
SetMetaRgn 将剪裁区选作图元区域 否 是 是
SetMiterLimit 设置斜面接合长度 否 是 是
SetNamedPipeHandleState 设置管道读取/阻塞模式,控制局部缓存 否 是 是
SetPaletteEntries 设置彩色调色板和标志 是 是 是
SetParent 改变父窗口 是 是 是
SetPixel 设置像素颜色 是 是 是
SetPixelFormat 否 是 是
SetPixelV 设置像素颜色 否 是 是
SetPolyFillMode 设置多边形填充 是 是 是
SetPrinter 设置打印机信息 否 是 是
SetPrinterData 设置打印机配置 否 是 是
SetPriorityClass 设置优先级类 否 是 是
SetPrivateObjectSecurity 修改SD 否 是 是
SetProcessShutdownParameters 设置进程关闭参数 否 是 是
SetProcessWindowStation 否 是 是
SetProcessWorkingSetSize 否 是 是
SetProp 增加或修改属性列项 是 是 是
SetROP2 设置当前绘图模式 是 是 是
SetRect 设置矩形大小 是 是 是
SetRectEmpty 建立空的矩形 是 是 是
SetRectRgn 修改区域为矩形 是 是 是
SetScrollInfo 是 是 是
SetScrollPos 设置滚动条位置 是 是 是
SetScrollRange 设置滚动条最大和最小位置 是 是 是
SetSecurityDescriptorDacl 设置DACL信息 否 是 是
SetSecurityDescriptorGroup 设置SD主组信息 否 是 是
SetSecurityDescriptorOwner 设置SD所有者 否 是 是
SetSecurityDescriptorSacl 设置SACL信息 否 是 是
SetServiceBits 否 是 是
SetServiceObjectSecurity 修改服务对象安全描述符 否 是 是
SetServiceStatus 更新服务状态 否 是 是
SetStdHandle 设置标准设备句柄 否 是 是
SetStretchBltMode 设置位图拉伸模式 是 是 是
SetSysColors 设置系统颜色 是 是 是
SetSystemCursor 是 是 是
SetSystemPaletteUse 设置系统调色板状态色 否 是 是
SetSystemPowerState 暂停系统工作 否 是 是
SetSystemTime 设置系统时间和日期 否 是 是
SetSystemTimeAdjustment 否 是 是
SetTapeParameters 设置磁带机和介质信息 否 是 是
SetTapePosition 设置磁带位置 否 是 是
SetTextAlign 设置文本对齐标志 是 是 是
SetTextCharacterExtra 设置字符间隔 是 是 是
SetTextColor 设置文件前颜色 是 是 是
SetTextJustification 调整文本输出 是 是 是
SetThreadAffinityMask 否 是 是
SetThreadContext 设置指定线索描述表 否 是 是
SetThreadDesktop 否 是 是
SetThreadLocale 设置线索本地信息 否 是 是
SetThreadPriority 否 是 是
SetThreadToken 否 是 是
SetTimeZoneInformation 设置时区 否 是 是
SetTimer 安装系统定时器 否 是 是
SetTokenInformation 设置令牌信息 否 是 是
SetUnhandledExceptionFilter 设置筛选器异常函数 否 是 是
SetUserObjectInformation 否 是 是
SetUserObjectSecurity 设置安全描述值 否 是 是
SetViewportExtEx 设置视口宽度 是 是 是
SetViewportOrgEx 设置视口起点 是 是 是
SetVolumeLabel 设置卷标 否 是 是
SetWinMetaFileBits 由图元文件数据建立增强图元文件 否 是 是
SetWindowContextHelpId 否 是 是
SetWindowExtEx 设置窗口宽度 是 是 是
SetWindowLong 设置窗口附加内存长型数值 是 是 是
SetWindowOrgEx 设置窗口源起点 是 是 是
SetWindowPlacement 设置窗口显示状态及最小/最大位置 是 是 是
SetWindowPos 设置窗口大小、位置、顺序 是 是 是
SetWindowRgn 否 是 是
SetWindowText 在目录标题或控制窗口中设置窗口文本 是 是 是
SetWindowWord 设置附加窗口内存字值 是 是 是
SetWindowsHook 安装钩子过程 否 是 是
SetWindowsHookEx 安装钩子过程 否 是 是
SetWorldTransform 设置世界传送 否 是 是
SetupComm 设置通信参数 否 是 是
ShellAbout 显示SHELL ABOUT对话框 否 是 是
ShellExecute 打开或打印指定文件 否 是 是
Shell_NotifyIcon 发送修改任务栏图标 否 是 是
ShowCaret 显示脱字号 是 是 是
ShowCursor 显示光标 是 是 是
ShowOwnedPopups 显示弹出式窗口 是 是 是
ShowScrollBar 显示滚动条 是 是 是
ShowWindow 显示窗口 是 是 是
ShowWindowAsync 否 是 是
SizeofResource 返回资源大小 是 是 是
Sleep 暂停线索 否 是 是
SleepEx 暂停线索直到I/O结束 否 是 是
sndPlaySound 播放声音文件 否 是 是
StartDoc 开始打印作业 是 是 是
StartDocPrinter 开始打印作业 否 是 是
StartPage 准备打印机接收数据 是 是 是
StartPagePrinter 开始打印机 否 是 是
StartService 开始运行服务 否 是 是
StartServiceCtrlDispatcher 连接线索 否 是 是
StretchBlt 复制位图 是 是 是
StretchDIBits 将DIB从源矩形移至目的矩形 是 是 是
StrokeAndFillPath 关闭、填充路径 否 是 是
StrokePath 行使路径 否 是 是
SubtractRect 两个矩形相减 否 是 是
SuspendThread 挂起线索 否 是 是
SwapBuffers 否 是 是
SwapMouseButton 交换鼠标按钮功能 是 是 是
SwitchDesktop 否 是 是
SystemParametersInfo 查寻系统参数信息 是 是 是
SystemTimeToFileTime 转换系统时间为64位时间 否 是 是
SystemTimeToTzSpecificLocalTime 否 是 是
TabbedTextOut 输出字符串 是 是 是
TerminateProcess 中止进程 否 是 是
TerminateThread 中止线索 否 是 是
TextOut 输出字符串 是 是 是
TileWindows 否 是 是
timeBeginPeriod 设置计时器分辨率 否 是 是
timeEndPeriod 清除计时器分辨率 否 是 是
timeGetDevCaps 返回计时器性能 否 是 是
timeGetSystemTime 返回WINDOWS运行时间 否 是 是
timeGetTime 返回WINDOWS运行时间 否 是 是
timeKillEvent 中止计时器事件 否 是 是
timeSetEvent 设置计时回调事件 否 是 是
TlsAlloc 分配线索本地存储索引 否 是 是
TlsFree 释放线索本地存储索引 否 是 是
TlsGetValue 返回TLS值 否 是 是
TlsSetValue 设置TLS值 否 是 是
ToAscii 转换虚拟关键字代码为WINDOWS字符 是 是 是
ToAsciiEx 否 是 是
ToUnicode 转换虚拟关键字代码为ANSI字符 否 是 是
TrackPopupMenu 显示弹出式窗口 是 是 是
TrackPopupMenuEx 否 是 是
TransactNamedPipe 读写命名管道 否 是 是
TranslateAccelerator 处理加速关键字 是 是 是
TranslateCharsetInfo 转换结构为给定字符串 否 是 是
TranslateMDISysAccel 处理MDI键盘加速器 是 是 是
TranslateMessage 转换虚拟关键字消息 是 是 是
TransmitCommChar 在传输队列中加入字符 是 是 是
UnhandledExceptionFilter 筛选异常条件 否 是 是
UnhookWindowsHook 删除筛选函数 否 是 是
UnhookWindowsHookEx 从钩子链中删除函数 是 是 是
UnionRect 关联两个矩形 是 是 是
UnloadKeyboardLayout 删除键盘布置 否 是 是
UnlockFile 开锁文件 否 是 是
UnlockFileEx 开锁文件 否 是 是
UnlockServiceDatabase 开锁数据库 否 是 是
UnmapViewOfFile 停止文件查看映像 否 是 是
UnpackDDElParam 从DDE消息IPARAM中获取数据 否 是 是
UnrealizeObject 复位逻辑调色板 是 是 是
UnregisterClass 删除窗口类 是 是 是
UnregisterHotKey 释放热键 否 是 是
UpdateColors 更新颜色 是 是 是
UpdateResource 更新资源 否 是 是
UpdateWindow 更新窗口的客户区域 是 是 是
ValidateRect 删除矩形 是 是 是
ValidateRgn 删除区域 是 是 是
VerFindFile 确定文件安装路径 否 是 是
VerInstallFile 安装文件 否 是 是
VerLanguageName 将语言ID转换为文本描述 否 是 是
VerQueryValue 获取资源项目 否 是 是
VirtualAlloc 保留虚拟页 否 是 是
VirtualFree 释放虚拟页 否 是 是
VirtualLock 锁定虚拟页 否 是 是
VirtualProtect 修改虚拟保护 否 是 是
VirtualProtectEx 修改虚拟保护 否 是 是
VirtualQuery 返回虚拟信息 否 是 是
VirtualQueryEx 返回虚拟保护 否 是 是
VirtualUnlock 开锁虚拟页 否 是 是
VkKeyScan 将字符转换为虚拟关键字代码 是 是 是
VkKeyScanEx 否 是 是
WNetAddConnection 重定向本地设备网络资源 是 是 是
WNetAddConnection2 重定向本地设备网络资源 否 是 是
WNetCancelConnection 断开网络连接 否 是 是
WNetCancelConnection2 断开网络连接 是 是 是
WNetCloseEnum 结束网络资源列表 否 是 是
WNetConnectionDialog 开始网络连接对话框 否 是 是
WNetDisconnectDialog 断开网络对话框 否 是 是
WNetEnumResource 继续列表网络资源 否 是 是
WNetGetConnection 获取网络资源名 是 是 是
WNetGetLastError 返回网络函数最近错误 否 是 是
WNetGetUniversalName 否 是 是
WNetGetUser 获取当前网络用户名 否 是 是
WNetOpenEnum 列出网络资源 否 是 是
WaitCommEvent 监视屏蔽的事件 否 是 是
WaitForInputIdle 监测进程空闲 否 是 是
WaitForMultipleObjects 监测多个对象 否 是 是
WaitForMultipleObjectsEx 监测多个对象或I/O结束 否 是 是
WaitForPrinterChange 监测打印机或打印机服务器变化 否 是 是
WaitForSingleObject 监测一个对象 否 是 是
WaitForSingleObjectEx 监测一个对象或I/O结束 否 是 是
WaitMessage 暂停应用程序运行并产生控件 是 是 是
WaitNamedPipe 监测命名管道 否 是 是
waveInAddBuffer 向声音输入设备发送缓冲区 否 是 是
waveInClose 关闭声音输入设备 否 是 是
waveInGetDevCaps 获取声音输入设备性能 否 是 是
waveInGetErrorText 获取声音出错的信息文本 否 是 是
waveInGetID 获取声音输入设备ID 否 是 是
waveInGetNumDevs 返回声音输入设备数量 否 是 是
waveInGetPosition 获取声音设备输入位置 否 是 是
waveInMessage 向声音输入设备发送信息 否 是 是
waveInOpen 打开声音输入设备 否 是 是
waveInPrepareHeader 预备声音输入缓冲区 否 是 是
waveInReset 停止声音输入设备工作 否 是 是
waveInStart 停止声音输入设备工作 否 是 是
waveInStop 停止声音输入 否 是 是
waveInUnprepareHeader 清除预备的声音文件头 否 是 是
waveOutBreakLoop 中断声音输出循环 否 是 是
waveOutClose 关闭声音输出设备 否 是 是
waveOutGetDevCaps 获取声音输出设备性能 否 是 是
waveOutGetErrorText 获取声音出错文本 否 是 是
waveOutGetID 获取声音输出设备ID 否 是 是
waveOutGetNumDevs 获取声音输出设备数量 否 是 是
waveOutGetPitch 获取声音输出的强度 否 是 是
waveOutGetPlaybackRate 获取声音回放率 否 是 是
waveOutGetPosition 获取声音回放位置 否 是 是
waveOutGetVolume 获取声音音量 否 是 是
waveOutMessage 向声音输出设备发送消息 否 是 是
waveOutOpen 打开声音输出设备 否 是 是
waveOutPause 暂停声音回放 否 是 是
waveOutPrepareHeader 预备声音回放数据块 否 是 是
waveOutReset 停止声音回放 否 是 是
waveOutRestart 重开始声音回放 否 是 是
waveOutSetPitch 设置波形输出强度 否 是 是
waveOutSetPlaybackRate 设置回放率 否 是 是
waveOutSetVolume 设置输出音量 否 是 是
waveOutUnprepareHeader 清除预备声音数据块 否 是 是
waveOutWrite 写入声音输出设备 否 是 是
WideCharToMultiByte 将通配符映像为多字节 否 是 是
WidenPath 设置当前路径 否 是 是
WinExec 运行程序 是 是 是
WinExecError 否 是 是
WinHelp 援引WINDOWS HELP 是 是 是
WindowFromDC 返回设备描述标窗口 否 是 是
WindowFromPoint 返回包含点的窗口 是 是 是
WriteConsole 写控制台屏幕缓冲区 否 是 是
WriteConsoleOutput 直接控制屏幕缓冲区 否 是 是
WriteConsoleOutputAttribute 向控制台写入属性字符串 否 是 是
WriteConsoleOutputCharacter 向控制台写入字符串 否 是 是
WriteFile 写文件 否 是 是
WriteFileEx 写文件 否 是 是
WritePrinter 向打印机输出数据 否 是 是
WritePrivateProfileSection 向私有INI文件输出数据 否 是 是
WritePrivateProfileString 向私有INI文件输出字符串 是 是 是
WriteProcessMemory 在指定进程中写内存 否 是 是
WriteProfileSection 将段写入WIN.INI 否 是 是
WriteProfileString 将字符串写入WIN.INI 是 是 是
WriteTapemark 写磁带标记 否 是 是
wsprintf 格式化字符串 是 否 否
ZeroMemory 将一块内存置零 否 否 否