您的位置:首页 > 其它

Win32基础知识----------CreateWindow 函数

2008-11-03 10:15 453 查看
CreateWindow 函数创建一个交叠的、弹出的或者子窗口。它指定窗口类、窗口标题、窗口风格以及窗口初始化时的位置和大小(可选的)。它也指定了窗口的父窗口或者所有者,还可以指定窗口的菜单。要使用除了被CreateWindow支持的扩展的窗口风格,使用CreateWindowEx 函数。

语法:



HWND CreateWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
参数:



lpClassName
一个指向以零结尾的字符串的指针,或者指向以前由ReGISterClass或RegisterClassEx条用创建的原子的指针。这个原子必须是次参数的低位,高位必须是0。如果是一个字符串,它指定窗口类的名称。类名可以是用RegisterClass或RegisterClassEx注册过的任何名称,provided that the module that registers the class is also the module that creates the window.类名称也可以是任何预定义的系统类名称。
lpWindowName
指向指定窗口名称的以零结尾的字符串的指针。如果窗口的风格指定了一个标题栏,则它将会显示在标题栏上。当使用CreateWindow创建控件时,此参数指定控件的文字。当用SS_ICON风格创建static 控件时,此参数指定图标的名称或者标识符。要指定一个标识符,使用”#num”语法。
dwStyle
指定要创建窗口的风格。可以是窗口风格的组合,加上控件的风格的组合。
x
指定窗口的初始水平位置。对于overlapped 或者弹出式窗口,x参数是初始的x坐标相当窗口的左上角,在屏幕坐标系上。For a child window, x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner of the parent window's client area.如果参数值被设置为CW_USEDEFAULT,系统为窗口左上角选择默认的位置并忽略y参数。CW_USEDEFAULT仅对overlapped窗口有效,如果它在弹出窗口或者自窗口上被指定,则x和y参数被设置为零。
y



指定窗口的初始化垂直位置。对于交叠式窗口或者弹出式窗口,y参数是在屏幕坐标上初始的窗口左上角的y坐标。对于子窗口,y是和父窗口客户区左上角相关的初始子窗口左上角的y坐标。对于listbox控件,y是和父窗口客户区左上角相关的listbox客户区初始的左上角的y坐标。如果用WS_VISIBLE风格创建一个overlapped窗口并且x参数设置为CW_USEDEFAULT,系统忽略y参数。
nWidth
用设备单位指定窗口的宽度。对于overlapped窗口,nWidth参数既可以是在屏幕坐标上窗口的宽度,也可以是CW_USEDEFAULT.如果nWidth是CW_USEDEFAULT,系统选择一个默认的宽度和高度,这个默认的宽度从初始的x坐标到屏幕的右边缘,默认的高度从y坐标到图标区的顶端。CW_USEDEFAULT仅对overlapped窗口可用,如果对子窗口或者弹出窗口设置了CW_USEDEFAULT,则nWidth和nHeight被设置为0。
nHeight
指定窗口的高度用设备单位。对于overlapped窗口,nHeight是在屏幕坐标上窗口的高度。如果nWidth被设置为CW_USEDEFAULT,系统忽略nHeight。
hWndParent
指向被创建窗口的父窗口或者所有者窗口的句柄。要创建一个子窗口或者一个被所有的窗口,提供一个有效的窗口句柄。这个参数对于弹出式窗口是可选的。
hMenu
菜单句柄,或者指定一个依靠窗口风格的子窗口标识符。对于overlapped窗口或者弹出式窗口,hMenu识别窗口要使用的菜单。可以是NULL如果使用类的菜单。对于子窗口,hMenu指定自窗口的标识符,一个用来通知父窗口对话框控件的事件的整数。程序决定子窗口的标识,他对于相同父窗口的所有子窗口必须是唯一的。
hInstance
Windows 95/98/Me: 和这个窗口有关系的模块的实例句柄。
Windows NT/2000/XP: 此值被忽略。
lpParam
[in] Pointer to a value to be passed to the window through the CREATESTRUCT structure passed in the lpParam parameter the WM_CREATE message. 如果一个程序通过调用CreateWindow 创建多文档界面的客户窗口。lpParam 必须指向一个CLIENTCREATESTRUCT结构。

本文来自 ms-help://MS.PSDKXPSP2.1033/winui/winui/Windowsuserinterface/windowing/windows/windowreference/windowfunctions/createwindow.htm
CreateWindow是学习Windows程序设计中用到的第一个看得见效果的函数,呵呵。有很多词不知道怎么翻译,主要是自己记学习日记。

ScrollWindow函数
函数功能:该函数滚动所指定的窗体客户区域内容。函数提供了向后兼容性,新的应用程序应使用ScrollWindowEX。

  函数原型:BOOL ScrollWindow(HWND hWnd,int XAmount,int YAmount,CONST RECT *IpRect, CONST RECT *lpClipRect);

  参数:

  hWnd:客户区域将被滚动的窗体句柄。

  XAmount:指定水平滚动以设备为单位的数量。如果窗体被滚动模式为CS_OWNDC或CS_CLASSDC,此参数则使用逻辑单位而不使用设备单位。当向左滚动窗体内容时,参数值必须为负。

  YAmount:指定垂直滚动设备单位数量。如果窗体被滚动模式为CS_OWNDC或CS_CLASSDC,此参数则使用逻辑单位而不使用设备单位。当向上滚动窗体内容时,参数值必须为负。

  lpRect:指向所指定将被滚动的客户区域部分的RECT结构。若此参数为NULL,则整个客户区域均被滚动。

  lpClipRect:指向包含类似于剪辑滚动条RECT结构。只有剪辑矩形条内部的位受影响。由外向内的滚动矩形内部被着色,而由矩形内向外的滚动将不被着色。

  返回值:如果函数运行成功,返回值为非零;如果函数运行失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。

  注意:如果在被滚动的窗体中由^符,滚动富体将自动隐藏起^符,以防止它被擦掉;当滚动结束后再恢复^符。^符的位置因而被调整过来。

  未被ScrollWindow覆盖的区域不再被重画,但它组合成窗体的更新区域。应用程序最终最终受到 WM_PAINT的消息,通知它区域必须被重画。为了在滚动过程的同时重画未覆盖区域,则应在调用ScrollWindow函数后马上调用UpdateWindow函数。

  如果参数lpRect为空,则窗体中的任何子窗体的位置由参数XAmount和Yamount种的数量决定偏移;窗体无效(未着色)的区域也进行偏移。IpRect为空时ScrollWindow则更快。

  如果参数lpRect不为空,则窗体中的子窗体的位置不改变,窗体中无效(未着色)的区域也不进行偏移。为了防止lpRect不为空时更新的问题,则在调用ScrollWindow之前先调用UpdateWindow函数重窗体。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: