Win32编程三:win32创建窗口函数(windows程序内部运行机制)

利用win32创建窗口函数,主要操作步骤为:

1、设计一个窗口类

2、注册窗口类

3、创建窗口

4、显示及窗口更新

5、消息循环

6、窗口过程函数

 

(1)设计一个窗口类

设计窗口类,这样的类型已经被windows定义好了,我们只需要像选择题一样填满定义好的结构体(WNDCLASS)即可。

首先有两个一般设为0的选项:cbClsExtra和cbWndExtra,这两个是类附加内存和窗口附加内存。

hbrBackground指定窗口类的背景画刷句柄。可以用来指定一个画刷的句柄,也可以指定一个标准的系统颜色值。

hCursor指定窗口类的光标句柄

hIcon指定窗口类的图标句柄

hInstance指定包含窗口过程程序的程序的实例句柄

lpfnWndProc是一个函数指针,指向窗口过程函数

lpszClassName指定窗口类的名字

lpszMenuName指定菜单资源的名字

style指定窗口的样式

 

(2)注册窗口类

RegisterClass( xxx )里面的参数为指向窗口WNDCLASS的指针

让操作系统知道这一类型的窗口相关信息

 

(3)创建窗口

hwnd = CreateWindow(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParant,hMenu,hInstance,lpParam)

lpClassName指定窗口类的名称,即窗口类中的lpszClassName

lpWindowName指定窗口的名字

dwStyle指定创建的窗口样式,主要是窗口显示些什么东西

x,y,nWidth,nHeight左上角坐标,长、宽

hWndParant指定被创建窗口的父窗口句柄

hMenu指定窗口菜单的句柄

hInstance指定窗口所属的应用程序实例的句柄

lpParam多数窗口将这个设为NULL

 

(4)显示及更新

ShowWindow(hwnd,窗口显示状态);

UpdateWindow(hwnd);

 

(5)消息循环

创建、显示、更新窗口之后,需要有一个消息循环,不断的从消息队列中读取消息。

GetMessage( lpMsg , hWnd , wMsgFilterMin, wMsgFilterMax)

lpMsg指向一个消息结构体(MSG)

hWnd指定接收哪一个窗口的消息,通常设为NULL,接收属于调用线程所有窗口的窗口消息

wMsgFilterMin,wMsgFilterMax指定要获取的消息最小值和最大值,通常设为0

GetMessage函数对于WM_QUIT消息,返回0

TranslateMessage和DispatchMessage对收到的消息进一步处理

 

(6)窗口过程函数

用于处理发送给窗口的消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值