Win32API函数大全使用详解.docx
《Win32API函数大全使用详解.docx》由会员分享,可在线阅读,更多相关《Win32API函数大全使用详解.docx(167页珍藏版)》请在冰豆网上搜索。
Win32API函数大全使用详解
一、窗口函数(Window)
===============================
===============================
==
AdjustWindowRect
函数功能:
该函数依据所需客户矩形的大小,计算需要的窗日矩形的大小。
计算出的窗口矩形随后可以传递给CreateWindow函数,用于创建一个客户区所需大小的窗口。
函数原型:
BOOLAdjustWindowRect(LPRECTlpRect,DWORD
dwStyle,BOOLbMENU);
参数:
lpRect:
指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。
函数返回时,该结构容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:
指定将被计算尺寸的窗口的窗口风格。
bMenu:
指示窗口是否有菜单。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
获取错误信息,参看GetLastError。
备注:
客户矩形是指完全包含一个客户区域的最小矩形;窗日矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:
WindowsNT:
3.1以上版本:
Windows:
95以上版本:
Windows
CE:
不支持;头文件:
winuser.h;库文件:
user32.lib。
===============================
==============================
AdjustWindowRectEX
函数功能:
该函数依据所需客户矩形大小,计算需要的窗口矩形的大小。
计算出的窗口矩形随后可以传送给CreateWindowEx函数,用于创建一个客户区所需大小的窗口。
函数原型:
BOOLAdjustWindowRectEX(LPRECTlpRect,DWORD
dwStyte;BOOLbMenu;DWORDdwExStyle);
参数:
lpRect:
指向RECT结构的指针,该结构包含所需客户区域的左上角和该结构包含容纳所需客户区域的窗口的左上角和右下角的坐标。
函数返回时,右下角的坐标。
.
dwStyle:
指定将被计算尺寸的窗口的窗口风格。
bMenu:
指示窗口是否有菜单。
dwExStyle:
指定将被计算尺寸的窗口的扩展窗口风格。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
备注:
客户矩形是指完全包含一个客户区域的最小矩形;窗口矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
1.0以上版本;头文件:
winuser.h;库文件:
user32.lib。
===============================
===============================
==
AnimateWindow
函数功能:
该函数能在显示与隐藏窗口时能产生特殊的效果。
有两种类型的动画效果:
滚动动画和滑动动画。
函数原型:
BOOLAnimateWindow(HWNDhWnd,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消息。
速查:
WIDdOWSNT:
5.0以上版本:
Windows:
98以上版本;Windows
CE:
不支持;头文件:
Winuser.h;库文件:
user32.lib。
===============================
===============================
==
ArrangelconicWindows
函数功能:
该函数安排指定父窗口的各个最小化(图标化)子窗口。
函数原型:
UNITArrangelconicWindows(HWNDhWnd):
参数:
hWnd:
父窗口句柄。
返回值:
如果函数成功,返回值为一行图标的高度。
如果函数失败,返回值为零。
若想获得更多错误信息,请调用
callGetLastError函数。
备注:
一个应用程序可以通过使用ArrangelconicWindows安排在一个父窗口卫的它自身的最小化的子窗口。
这个函数也可以安排桌面图标。
使用GetDesttopWindow函数获得桌面窗口的句柄。
一个应用程序给多文本接口(MDI)客户窗口发送WM_MDIICONARRANGE消息,使客户窗口来安排自身的最小化MDI子窗口。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
不支持;头文件:
winuser.h;库文件:
user32.lib。
===============================
===============================
==
BeginDeferWindowPos
函数功能:
该函数为一个多窗口位置结构分配内存并且返回该结构的句柄。
函数原型:
HDWPBeginDeferWindowPos(intnNumWindows);
参数:
nNumWindows:
指示存储位置信息的初始窗口数目。
如有必要,DeferWindowPos函数可以增加该结构的大小。
返回值:
如果函数成功,返回多窗口位置结构。
如果分配内存时内存不足,则返回值为NULL。
若想获得更多的错误信息,请调用GetLastError函数。
备注:
多窗口位置结构是一个内部结构,应用程序不能直接引用。
DeferWindowPos函数在多窗口位置结构中填充了将被移动的一个或多个窗口的目标位置信息。
EndDeferWindowPos接收该结构的句柄,并且依据存储在该结构中的信息重定位这些窗口。
如果在多窗口位置结构中的任意一个窗口中设置了SWP_HIDEWINDOW和SWP_SHOWWINDOW标志,则所有窗口都不能被重定位。
如果系统必须增加在多窗口位置结构中由nNumWindows设置的初始窗口数目,但又没有足够的内存分配,则系统的整个窗口重定位顺序失败(BeginDeferWindowsPos,DeferWindowsPos,EndDeferWindowPos)。
应用程序通过指定所需最大数目,可以在执行过程中进行早期的检测和处理。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
不支持:
头文件:
winuser.h;库文件:
user32.lib。
===============================
===============================
==
BringWindowToTop
函数功能:
该函数将指定的窗口设置到Z序的顶部。
如果窗口为顶层窗口,则该窗口被激活;如果窗口为了窗口,则相应的顶级父窗口被激活。
函数原型:
B00LBringWindowToTop(HWND,hWnd);、
参数:
hWnd:
设置到Z序的顶部的窗口句柄。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
备注:
使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。
调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,但是BringWindowToTop函数并不能使一个窗口成为顶层窗口。
如果应用程序不在前台中而想设置在前台中,可以调用SetForegroundWindow函数。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
1.0以上版本;头文件:
winuser.h;库文件:
user32.lid。
===============================
===============================
==
WINAPICascadeWihdows
函数功能:
该函数层叠排列指定父窗口的各指定子窗口。
函数原型:
WORDWINAPICascadeWihdows(HWNDhWndParent,UNIT
wHow,CONSTRECT*lpRect,UNITcKids,ConstHWNDFA*lpKids);
参数:
Parent:
父窗口的句柄。
如果参数为NVLL,则假定为桌面窗口。
wHow:
指定层叠标志。
唯一可用的标志为MDITILE_SKIPDISABLED,防止被禁止的MDI子窗口被层叠排列。
lpBect:
指向RECT结构的指针,该结构以客户坐标定义矩形区域,并在这个区域中排列窗口、该参数可以为NULL,这种情况下使用父窗口的客户区域。
cKids:
指明由lpKids参数指定的数组的成员个数。
如果IpKidS参数为NULL,则此参数将被忽略。
lpKids:
指向将被排列的子窗口的句柄数组的指针。
如果此参数为空,则指定的父窗口(或桌面窗口)的所有子窗口都将被排列。
返回值:
如果函数成功,返回值为被排列的窗口数目;如果函数失败,返回值为零。
若想获得更多错误信息,请调用
GetLastError函数。
备注:
调用CascadeWindows函数使所有最大化窗口恢复到它们原来的大小。
速查:
WindowsNT:
4.0以上版本;Windows:
95以上版本;Windows
User32.1
;库文件:
winuser.h:
不支持;头文件:
CE
===============================
===============================
==
ChildWindowFromaPoint
函数功能:
该函数确定属于某一父窗口的哪一个子窗口(如果存在的话)包含一个指定的点。
函数原型:
HWNDChildWindowFromaPoint(HWND
hWndParent.POINT
Point):
Parent:
父窗口句柄。
Point:
指定一个POINT结构,该结构给定了被检查的点的坐标。
返回值:
返回值为包含该点的子窗口的句柄,即使该子窗口是隐藏的或被禁止的。
如果该点在父窗口之外,则返回值为NULL。
如果该点在父窗口内,但在任一子窗口外,则返回值为父窗口句柄。
备注:
系统有一个与某一父窗口有联系的所有子窗口的内部列表。
列表中的句柄顺序依据这些子窗口的z序。
如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点的第一个窗口的句柄。
速查:
WindowsNT:
3.1以上版本:
Windows:
95以上版本;Windows
CE;1.0以上版本;头文件:
winuser.h;库文件:
user32.lib。
===============================
===============================
==
ChidWindowFromaPointEx
函数功能:
该函数确定属于父窗口的哪一个子窗口(如果存在的话)包含着指定的点。
该函数可以忽略不可见的、禁止的和透明的子窗口。
函数原型:
HWNDChidWindowFromaPointEx(HWND
hwndParent,POINT
pt,UNITuFlags);
参数:
hWndParent:
父窗口句柄。
pt:
指定一个POINT结构,该结构定义了被检查的点的坐标。
uFlags:
指明忽略的子窗口的类型。
该参数可以是下列参数的组合。
CWP_ALL:
不忽略任一子窗口。
CWP_SKIPINVISIBLE:
忽略不可见的子窗口。
CWP_SKIPDISABLE:
忽略禁止的子窗口。
:
忽略透明子窗口。
CWP_SKIPTRABSPARENT.
返回值:
返回值为包含该点并且满足由uFlags定义的规则的第一个子窗口的句柄。
如果该点在父窗口内,但在任一满足条件的子窗口外,则返回值为父窗口句柄。
如果该点在父窗口之外或函数失败,则返回值为NULL。
备注:
系统有一个与某一父窗口有联系的所有子窗口的内部列表。
列表中的句柄顺序依据这些子窗口的Z序。
如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点并且满足由uFlags定义的规则的第一个窗口的句柄。
速查:
WindowSNT:
4.0以上版本;Windows:
95以上版本;Windows
CE:
不支持;头文件:
Winuser.h;库文件:
user32.lib。
===============================
===============================
==
CloseWindow
函数功能:
该函数最小化指定的窗口,但并不销毁该窗口。
函数原型:
BOOLCloseWindow(HWNDhWnd);
参数:
hWnd:
将要最小化的窗口的句柄。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
备注:
窗口尺寸被最小化成一个图标,并移动到屏幕的图标区域。
系统显示窗口的图标而不显示窗口,并在图标下显示窗口标题。
应用程序必须使用DestroyWindow函数销毁窗口。
速查:
WindowSNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
不支持;头文件:
Winuser.h;库文件:
user32.lib
===============================
===============================
==
CreateWindow
函数功能:
该函数创建一个重叠式窗口、弹出式窗口或子窗口。
它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。
该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。
若要使用除CreateWindow函数支持的风格外的扩展风格,则使用CreateWindowEx函数代替CreateWindow函数。
函数原型:
HWNDCreateWindow(LPCTSTR
lpClassName,LPCTSTR
lpWindowName,DWORDdwStyle,intx,inty,intnWidth,int
nHeight,HWNDhWndParent,HMENUhMenu,HANDLEhlnstance,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:
创建一个具有可调边框的窗