CreateWindow

HWND CreateWindow(
    LPCTSTR lpClassName, // 指向注册窗口类名的指针
    LPCTSTR lpWindowName, // 指向窗口名的指针
    DWORD dwStyle,  // 窗口样式
    int x,  // 窗口水平位置
    int y,  // 窗口垂直位置
    int nWidth,  // 窗口宽度
    int nHeight,  // 窗口高度
    HWND hWndParent, // 父窗口句柄
    HMENU hMenu,  // 菜单句柄
    HANDLE hInstance, // 应用程序实例句柄
    LPVOID lpParam  // 指向创建窗口所需的数据
   );
返回值:如果成功就返回新窗口的句柄;失败则返回NULL值

HWND CreateWindowEx(
    DWORD dwExStyle, // 扩展窗口样式
    LPCTSTR lpClassName, // 指向注册窗口类名的指针
    LPCTSTR lpWindowName, // 指向窗口名的指针
    DWORD dwStyle,  // 窗口样式
    int x,  // 窗口水平位置
    int y,  // 窗口垂直位置
    int nWidth,  // 窗口宽度
    int nHeight,  // 窗口高度
    HWND hWndParent, // 父窗口句柄
    HMENU hMenu,  // 菜单句柄
    HINSTANCE hInstance, // 应用程序实例句柄
    LPVOID lpParam  // 指向创建窗口所需的数据
   );
返回值:如果成功就返回新窗口的句柄;失败则返回NULL值


几个参数的说明:
lpClassName 窗口类别的名字,可以是自己通过RegisterClassEx注册的,也可以是系统内置的窗口类如"BUTTON"、"COMBOBOX"等。

int x  窗口水平位置,在这个值填CW_USEDEFAULT的情况下,如果是重叠式窗口则下一个参数被忽略(填什么都没用);如果是弹出式窗口或子窗口则这个参数跟下一个参数(即窗口左上角坐标)均作为0。

int nWidth  窗口宽度,在这个值填CW_USEDEFAULT的情况下,如果是重叠式窗口则下一个参数被忽略(填什么都没用);如果是弹出式窗口或子窗口则这个参数跟下一个参数(即窗口的宽跟高)均作为0。

HMENU hMenu 如果是重叠式窗口或弹出式窗口就是菜单句柄,如果是子窗口(控件)就是控件的ID。在给父窗口发送消息时这个ID会传递过去。

LPVOID lpParam  指向创建窗口所需的数据。这个函数返回之前会发出消息WM_CREATE,这个消息的LPARAM会带上一个参数,参数的内容就是本参数的内容,本参数的原类型是CREATESTRUCT。不用也罢。


例子:
hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPED | WS_SYSMENU,
        CW_USEDEFAULT,
        0,
        CW_USEDEFAULT,
        0,
        NULL,
        NULL,
        hInstance,
        NULL
       );

CreateWindow (
     "BUTTON",
     "TEST",
     WS_VISIBLE|WS_CHILD,
     10,
     10,
     100,
     20,
     hWnd,
     (HMENU)IDC_BUTTON1,
     hInst,
     NULL
     );

几种窗口样式的说明:
WS_POPUP  没有标题,没有边框,没有系统菜单,没有关闭按钮,你很可能要在任务管理器中关闭窗口。
WS_POPUPWINDOW  仅比WS_POPUP多了一个细细的边框。
WS_OVERLAPPED 有标题,有边框,没有系统菜单,没有关闭按钮,你很可能要在任务管理器中关闭窗口。
WS_OVERLAPPEDWINDOW 有标题,有边框,有系统菜单,有关闭按钮。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值