曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3916|回复: 1
打印 上一主题 下一主题

CreateWindow() -- 创建窗口

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2012-1-26 21:41:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CreateWindow() 原型如下:
[C++] 纯文本查看 复制代码
HWND CreateWindow(          LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HINSTANCE hInstance,
    LPVOID lpParam
);

该函数可以用来创建一个层叠窗口,弹出窗口,或一个子窗口。在函数中指定了窗口类,窗口标题,窗口风格,窗口的初始化位置以及窗口的大小(可选)。

函数如果执行成功,那么返回一个新窗口的句柄;若失败则返回 NULL,错误信息可用 GetLastError() 函数获取。

第一个参数 lpClassName 是窗口类的名字,该名字和初始化窗口类中的成员 lpszClassName 是同一个。

第二个参数 lpWindowName 是窗口标题栏上面的名字,如下图所示:

上图中的 Win32Main 就是由该参数指出。

第三个参数 dwStyle 用来指定窗口风格。表示窗口风格的选项有很多,一般情况下,可将之设置为 WS_OVERLAPPEDWINDOW ,这个选项有其它若干项相或而成,定义如下:
[C++] 纯文本查看 复制代码
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED     | \
                             WS_CAPTION        | \
                             WS_SYSMENU        | \
                             WS_THICKFRAME     | \
                             WS_MINIMIZEBOX    | \
                             WS_MAXIMIZEBOX)

其中,WS_OVERLAPPED     表示要创建的是一个重叠窗口。一个重叠窗口时指该窗口有一个标题栏与一个边框。

WS_CAPTION  表示创建一个有标题栏的窗口。

WS_SYSMENU 表示创建的窗口的标题栏上具有窗口菜单,如果你在标题栏的图标上单击一下若是能看到弹出一个菜单,那么该菜单就是窗口菜单。指定该选项,也就必须指定 WS_CAPTION 选项。

WS_THICKFRAME 表示创建的窗口具有可调边框。可调边框是当你把鼠标放在窗口的边框上可以拖拽窗口并可以改变窗口的大小。

WS_MINIMIZEBOX WS_MAXIMIZEBOX 分别表示窗口上具有最小化按钮和最大化按钮。设置这两个项时,必须同时设定 WS_SYSMENU 。

第四个和第五个参数(x, y)分别用来指定窗口的水平和垂直坐标位置。一般情况下,我们会将 x 参数设置为 CW_USEDEFAULT ,这样系统会为窗口提供一个默认的起始坐标,此时 y 参数将被忽略。


第六个和第七个参数(nWidth, nHeight)分别指示了窗口的宽度和高度。同样的,通常我们也会将 nWidth 设置为 CW_USEDEFAULT ,这样系统会为我们提供默认的宽度和高度,此时 nHeight 参数被忽略。

第八个参数 hWndParent 是一个父窗口句柄,对于一个单窗口程序来说,并不存在父窗口,因此这时该参数可以设置为 NULL 。

第九个参数 hMenu 是一个菜单句柄。

第十个参数就是当前应用程序实例句柄,也就是 WinMain() 中的第一个参数。

第十一个参数指向一个值的指针,该值传递给窗口 WM_CREATE 消息。该值通过在 IParam 参数中的 CREATESTRUCT 结构传递。如果应用程序调用 CreateWindow 创建一个MDI 客户窗口,则 lpParam 必须指向一个CLIENTCREATESTRUCT结构。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
沙发
 楼主| 发表于 2012-1-28 10:01:10 | 只看该作者

窗口样式

参数 dwStyle 是窗口样式。窗口是否具有标题栏,是否可以改变大小,边框的样式等都通过这个参数来设置。下面列出了常用的窗口样式:

WS_BORDER :具有边框

WS_CAPTION :具有标题栏

WS_CHILD :子窗口

WS_HSCROLL :具有水平滚动条

WS_MAXIMIZE :创建最大化窗口

WS_MINIMIZE :创建最小化窗口

WS_POPUP :顶层窗口(无父窗口,不能和 WS_CHILD 同时使用)

WS_SIZEBOX :具有拖拉边框的窗口,即窗口可以改变大小

WS_SYSMENU :窗口有系统菜单(要求窗口必须同时具有标题栏),即点击标题栏上的图标时弹出的菜单

WS_TILED :具有标题栏和边框

WS_VISIBLE :窗口可见

WS_VSCROLL :具有竖直滚动条
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-17 16:58 , Processed in 0.075213 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表