Win32学习笔记 - 02 - 窗口

本文详细介绍了通过四个步骤创建Windows程序的过程:注册窗口类、创建窗口、消息循环和消息处理。涉及WNDCLASS结构体的使用及其成员作用说明,并展示了如何通过代码实现窗口的创建与显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四步创建完整的window程序, 注册窗口, 创建窗口, 消息循环, 消息处理回调函数

 

第一步 注册窗口

 

 

WNDCLASS结构声明

typedef struct {
    UINT cbSize;
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    HINSTANCE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
    HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;
结构体的成员对窗口类的影响如下:
cbSize
  结构体的大小.
style
  类的式样(CS_*),不要跟窗口式样(WS_*)混淆了.这个一般设置为0.
lpfnWndProc
  指向这个窗口类的窗口过程的指针.
cbClsExtra
  配置给这个类的额外內存.一般为0.
cbWndExtra
  配置给这个类的每个窗口的额外內存.一般为0.
hInstance
  应用程序实例的句柄.(从WinMain()第一个参数传递来.)
hIcon
  当用戶按下Alt+Tab组合时候显示的大图标(一般为32*32).
hCursor
  在我们的窗口上显示的光标.
hbrBackground
  设置我们窗口背景顏色的背景刷子.
lpszMenuName
  这个类的窗口所用的菜单资源的名字.
lpszClassName
  类的名字.
hIconSm
  在任务栏和窗口的左上角显示的小图标(一般为16*16).
 第二步 创建窗口  CreateWindowEx函数原型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
);  

dwExStyle  窗口扩张样式

lpClassName  要创建的窗口的名字, 使用刚才注册过的窗口相同的名字

lpWindowName  窗口的Caption

dwStyle  窗口样式

x,y,nWidth, nHeight  窗口的位置及大小

hWndParent   父窗口句柄

hMenu  菜单句柄

hInstance  应用程序实例句柄

lpParam  窗口创建数据的指针

 

显示和更新窗口

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

nCmdShow  是可选的参数,你可以简单地传递SW_SHOWNORMAL即可.但是用从WinMain()传来的参数可给予运行此程序的用戶选择以可视,最大化,最小化等选项...来引导程序的自由.你可以在windows快捷方式的属性中看到这些选项,参数由选项来決定.

 

第三步 消息循环

 

第四步 窗口过程

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值