Win32API MFC函数.docx
- 文档编号:3526619
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:120
- 大小:100.66KB
Win32API MFC函数.docx
《Win32API MFC函数.docx》由会员分享,可在线阅读,更多相关《Win32API MFC函数.docx(120页珍藏版)》请在冰豆网上搜索。
Win32APIMFC函数
一、窗口函数(Window)
AdjustWindowRect
函数功能:
该函数依据所需客户矩形的大小,计算需要的窗日矩形的大小。
计算出的窗口矩形随后可以传递给CreateWindow函数,用于创建一个客户区所需大小的窗口。
函数原型:
BOOLAdjustWindowRect(LPRECTlpRect,DWORDdwStyle,BOOLbMENU);
参数:
lpRect:
指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。
函数返回时,该结构容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:
指定将被计算尺寸的窗口的窗口风格。
bMenu:
指示窗口是否有菜单。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
获取错误信息,参看GetLastError。
备注:
客户矩形是指完全包含一个客户区域的最小矩形;窗日矩形是指完全包含一个窗口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:
WindowsNT:
3.1以上版本:
Windows:
95以上版本:
WindowsCE:
不支持;头文件:
winuser.h;库文件:
user32.lib。
AdjustWindowRectEX
函数功能:
该函数依据所需客户矩形大小,计算需要的窗口矩形的大小。
计算出的窗口矩形随后可以传送给CreateWindowEx函数,用于创建一个客户区所需大小的窗口。
函数原型:
BOOLAdjustWindowRectEX(LPRECTlpRect,DWORDdwStyte;BOOLbMenu;DWORDdwExStyle);
参数:
lpRect:
指向RECT结构的指针,该结构包含所需客户区域的左上角和右下角的坐标。
函数返回时,该结构包含容纳所需客户区域的窗口的左上角和右下角的坐标。
dwStyle:
指定将被计算尺寸的窗口的窗口风格。
bMenu:
指示窗口是否有菜单。
dwExStyle:
指定将被计算尺寸的窗口的扩展窗口风格。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
1/85
备注:
客户矩形是指完全包含一个客户区域的最小矩形;窗口矩形是指完全包含一个窗
口的最小矩形,该窗口包含客户区与非客户区。
当一个菜单条下拉出两行或更多行时,AdjustWindowRect函数不增加额外的空间。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;Windows
CE:
1.0以上版本;头文件:
winuser.h;库文件:
user32.lib。
AnimateWindow
函数功能:
该函数能在显示与隐藏窗口时能产生特殊的效果。
有两种类型的动画效果:
滚动动画和滑动动画。
函数原型:
BOOLAnimateWindow(HWNDhWnd,DWORDdwTime,DWORDdwFlags);
参数:
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或
2/85
WM_PRINTCLIENT消息。
对话框,控制,及共用控制已处理WM_PRINTCLIENT消息,缺省窗口过程也已处理WM_PRINT消息。
速查:
WIDdOWSNT:
5.0以上版本:
Windows:
98以上版本;WindowsCE:
不支持;头文件:
Winuser.h;库文件:
user32.lib。
ArrangelconicWindows
函数功能:
该函数安排指定父窗口的各个最小化(图标化)子窗口。
函数原型:
UNITArrangelconicWindows(HWNDhWnd):
参数:
hWnd:
父窗口句柄。
返回值:
如果函数成功,返回值为一行图标的高度。
如果函数失败,返回值为零。
若想
获得更多错误信息,请调用callGetLastError函数。
备注:
一个应用程序可以通过使用ArrangelconicWindows安排在一个父窗口卫的它自身的最小化的子窗口。
这个函数也可以安排桌面图标。
使用GetDesttopWindow函数获得桌面窗口的句柄。
一个应用程序给多文本接口(MDI)客户窗口发送WM_MDIICONARRANGE消息,使
客户窗口来安排自身的最小化MDI子窗口。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;WindowsCE:
不支持;头文件:
winuser.h;库文件:
user32.lib。
BeginDeferWindowPos
函数功能:
该函数为一个多窗口位置结构分配内存并且返回该结构的句柄。
函数原型:
HDWPBeginDeferWindowPos(intnNumWindows);
参数:
nNumWindows:
指示存储位置信息的初始窗口数目。
如有必要,DeferWindowPos函数
可以增加该结构的大小。
返回值:
如果函数成功,返回多窗口位置结构。
如果分配内存时内存不足,则返回值为NULL。
若想获得更多的错误信息,请调用GetLastError函数。
备注:
多窗口位置结构是一个内部结构,应用程序不能直接引用。
DeferWindowPos函数在多窗口位置结构中填充了将被移动的一个或多个窗口的目标位置信息。
EndDeferWindowPos接收该结构的句柄,并且依据存储在该结构中的信息重定位这
些窗口。
3/85
如果在多窗口位置结构中的任意一个窗口中设置了SWP_HIDEWINDOW和SWP_SHOWWINDOW标志,则所有窗口都不能被重定位。
如果系统必须增加在多窗口位置结构中由nNumWindows设置的初始窗口数目,但又没有足够的内存分配,则系统的整个窗口重定位顺序失败(BeginDeferWindowsPos,DeferWindowsPos,EndDeferWindowPos)。
应用程序通过指定所需最大数目,可以在执行过
程中进行早期的检测和处理。
速查:
WindowsNT:
3.1以上版本;Windows:
95以上版本;WindowsCE:
不支持:
头文件:
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,UNITwHow,CONSTRECT*lpRect,UNITcKids,ConstHWNDFA*lpKids);
参数:
Parent:
父窗口的句柄。
如果参数为NVLL,则假定为桌面窗口。
wHow:
指定层叠标志。
唯一可用的标志为MDITILE_SKIPDISABLED,防止被禁止的
4/85
MDI子窗口被层叠排列。
lpBect:
指向RECT结构的指针,该结构以客户坐标定义矩形区域,并在这个区域中排列窗口、该参数可以为NULL,这种情况下使用父窗口的客户区域。
cKids:
指明由lpKids参数指定的数组的成员个数。
如果IpKidS参数为NULL,则此参
数将被忽略。
lpKids:
指向将被排列的子窗口的句柄数组的指针。
如果此参数为空,则指定的父窗口
(或桌面窗口)的所有子窗口都将被排列。
返回值:
如果函数成功,返回值为被排列的窗口数目;如果函数失败,返回值为零。
若
想获得更多错误信息,请调用
GetLastError函数。
备注:
调用CascadeWindows函数使所有最大化窗口恢复到它们原来的大小。
速查:
WindowsNT:
4.0以上版本;Windows:
95以上版本;WindowsCE:
不支持;头文件:
winuser.h;库文件:
User32.1
ChildWindowFromaPoint
函数功能:
该函数确定属于某一父窗口的哪一个子窗口(如果存在的话)包含一个指定
的点。
函数原型:
HWNDChildWindowFromaPoint(HWNDhWndParent.POINTPoint):
Parent:
父窗口句柄。
Point:
指定一个POINT结构,该结构给定了被检查的点的坐标。
返回值:
返回值为包含该点的子窗口的句柄,即使该子窗口是隐藏的或被禁止的。
如果该点在父窗口之外,则返回值为NULL。
如果该点在父窗口内,但在任一子窗口外,则返回值为父窗口句柄。
备注:
系统有一个与某一父窗口有联系的所有子窗口的内部列表。
列表中的句柄顺序依据这些子窗口的z序。
如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点的第一个窗口的句柄。
速查:
WindowsNT:
3.1以上版本:
Windows:
95以上版本;WindowsCE;1.0以上版本;头文件:
winuser.h;库文件:
user32.lib。
ChidWindowFromaPointEx
函数功能:
该函数确定属于父窗口的哪一个子窗口(如果存在的话)包含着指定的点。
该函数可以忽略不可见的、禁止的和透明的子窗口。
函数原型:
HWNDChidWindowFromaPointEx(HWNDhwndParent,POINT
5/85
pt,UNITuFlags);
参数:
hWndParent:
父窗口句柄。
pt:
指定一个POINT结构,该结构定义了被检查的点的坐标。
uFlags:
指明忽略的子窗口的类型。
该参数可以是下列参数的组合。
CWP_ALL:
不忽略任一子窗口。
CWP_SKIPINVISIBLE:
忽略不可见的子窗口。
CWP_SKIPDISABLE:
忽略禁止的子窗口。
CWP_SKIPTRABSPARENT:
忽略透明子窗
口。
返回值:
返回值为包含该点并且满足由uFlags定义的规则的第一个子窗口的句柄。
如果该点在父窗口内,但在任一满足条件的子窗口外,则返回值为父窗口句柄。
如果该点在父窗口之外或函数失败,则返回值为NULL。
备注:
系统有一个与某一父窗口有联系的所有子窗口的内部列表。
列表中的句柄顺序依据这些子窗口的Z序。
如果有多于一个的子窗口包含该点,那么系统返回在列表中包含该点并且满足由uFlags定义的规则的第一个窗口的句柄。
速查:
WindowSNT:
4.0以上版本;Windows:
95以上版本;WindowsCE:
不支持;头文件:
Winuser.h;库文件:
user32.lib。
CloseWindow
函数功能:
该函数最小化指定的窗口,但并不销毁该窗口。
函数原型:
BOOLCloseWindow(HWNDhWnd);
参数:
hWnd:
将要最小化的窗口的句柄。
返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
备注:
窗口尺寸被最小化成一个图标,并移动到屏幕的图标区域。
系统显示窗口的图标而不显示窗口,并在图标下显示窗口标题。
应用程序必须使用DestroyWindow函数销毁窗口。
速查:
WindowSNT:
3.1以上版本;Windows:
95以上版本;WindowsCE:
不支持;头文件:
Winuser.h;库文件:
user32.lib
CreateWindow
函数功能:
该函数创建一个重叠式窗口、弹出式窗口或子窗口。
它指定窗口类,窗口标
题,窗口风格,以及窗口的初始位置及大小(可选的)。
该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。
若要使用除CreateWindow函数支持的风格外的扩
6/85
展风格,则使用CreateWindowEx函数代替CreateWindow函数。
函数原型:
HWNDCreateWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName,DWORDdwStyle,intx,inty,intnWidth,intnHeight,HWNDhWndParent,HMENUhMenu,HANDLEhlnstance,LPVOIDlpParam);
参数:
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:
创建一个具有最大化按钮的窗口。
该风格不能与
7/85
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,则系统为窗口选择一个缺省的
8/85
高度和宽度:
缺省宽度为从初始X坐标开始到屏幕的右边界,缺省高度为从初始X坐标开始到目标区域的顶部。
CW_USEDFEAULT只参层叠窗口有效;如果为弹出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为零。
nHelght:
以设备单元指明窗口的高度。
对于层叠窗口,nHeight是屏幕坐标的窗口宽度。
若nWidth被设为CW_USEDEFAULT,则系统忽略nHeight参数。
hWndParent:
指向被创建窗口的父窗口或所有者窗口的旬柄。
若要创建一个子窗口或一个被属窗口,需提供一个有效的窗口句柄。
这个参数对弹出式窗日是可选的。
Windows
NT5.0;创建一个消息窗口,可以提供HWND_MESSAGE或提供一个己存在的消息窗
口的句柄。
hMenu:
菜单句柄,或依据窗口风格指明一个子窗口标识。
对于层叠或弹出式窗口,hMenu指定窗口使用的菜单:
如果使用了菜单类,则hMenu可以为NULL。
对于子窗口,hMenu指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。
应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的。
hlnstance:
与窗口相关联的模块事例的句柄。
lpParam:
指向一个值的指针,该值传递给窗口
WM_CREATE消息。
该值通过在IParam参数中的CREATESTRUCT结构传递。
如果应用程序调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个
CLIENTCREATESTRUCT结构。
返回值:
如果函数成功,返回值为新窗口的句柄:
如果函数失败,返回值为NULL。
若想获得更多错误信息,请调用GetLastError函数。
备注:
在返回前,CreateWindow给窗口过程发送一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Win32API MFC函数 MFC 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)