【逐梦旅程】二、Windows窗体

窗口

我们看到的应用程序就是窗口,Windows就是源于此。窗口分为客户区和非客户区,客户区是我们控制的程序内容,非客户区是Windows管理的,比如最小化,最大化等等。

句柄

句柄(Handle)是资源的标识号。窗口是通过窗口句柄(HWND)来标识的。似乎句柄类似于指针,但是不能理解为指针。书中说的很好,就是Windows资源的身份证。

消息队列

Windows操作系统是通过消息来进行程序与系统之间的通信的。这里引出了窗口过程函数。
消息投放到消息队列中,程序从消息队列中取出消息并响应。
消息的结构体是MSG。
每个程序启动后,系统都会为程序创建一个消息队列。Windows系统创建一个又一个消息,程序则从程序的消息队列中不断地消耗消息,这就是Windows程序的运行机制。

窗口创建四部曲

设计-注册-创建-显示与更新

设计

我们使用Winclassex结构体来创建窗口。

typedef struct tagWNDCLASSEXW {
   
   
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW;

开始定义窗口

WNDCLASSEX wndClass = {
   
    0 };

这行代码是用来初始化一个 WNDCLASSEX 结构体实例,wndClass。{ 0 } 将结构体的所有成员都设置为零,以确保它的初始状态是干净的。这样做可以避免使用未初始化的成员,减少潜在的错误。
WNDPROC lpfnWndProc 是一个指向窗口过程函数的回调函数,回调函数是不是有该函数的实现方调用的函数,是当某个事件发生后由另一方调用的的,用于对该事件进行响应。

#include <Windows.h>
#pragma comment(lib,"winmm.lib")
int WINAPI WinMain(</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值