windows 编程随笔——窗口和信息

1,在简单的hellowin(一个具有最小化,最大化,关闭的窗体结构)程序中简述的一个简单的win窗口程序的机制,简略概述:

     a,结构,具有如下4个:

                                 MSG          信息结构

 WNDCLASS   窗口类结构

 PAINTSTRUCT     绘图结构

 RECT   矩形结构

            

      b,句柄名具有如下3个:

HINSTANCE     实例(程序自身)句柄

HWND  窗口句柄

HDC  设备描述表句柄

    

      c,在一个窗口程序中,我们第一步就是要注册窗口类,在实际注册前需做点准备工作:也就是有几个结构,有几个句柄需要使用。

           在单单绘制一个窗口时我们需要结构(MSG、WNDCLASS);句柄(HWND)

           接着就是需要初始化结构和句柄,但是结构是在注册窗口前需要初始化的(WNDCLASS),句柄在注册窗口之后初始化,信息(MSG)的初始化在句柄之后。

 

          c1, WNDCLASS结构的初始化: 顾名思义是为一个结构体初始化参数。有10个域。

10个域分别代表:style样式【预处理定义了8进制的辨识码】、inpfWndProc窗口类窗口过程设置【也就是在窗口发生了动作后找谁处理,就找这个属性值的函数去处理】、cbClsExtra,cbWndExtra窗口结构中的预留空间【类似边框向内缩多少像素的意思】、hInstance句柄【也就是程序自身】、hIcon图标、hCursor鼠标句柄【通过函数赋值使鼠标进入窗口区域后变成箭头】、hbrBackground背景色【背景刷子】、IpszMenuName窗口菜单、IpseClassName类名。

          

  c2,接下来注册窗口类:

RegisterClass函数接收一个WNDCLASS的引用。成功后进行窗口创建

 

       d, 接着创建窗口,也就是对HWND句柄的初始化:

CreateWindow()函数有11个参数。分别为szAppName注册的窗口类名、TEXT标题栏显示【text用于文本显示】、style、x【窗口位置】、y【窗口位置】、x size【窗口大小】、y size【窗口大小】、父窗口句柄、菜单栏句柄、实例【自身】句柄、创建参数。  

       

   e,显示窗口:

                ShowWindow(hwnd句柄,iCmdShow)第一个参数是创建窗口的句柄,第二个是窗口显示的方式,是最大化,最小化,还是普通。 如果你定了普通显示 那么窗口会被WNDCLASS初始化的背景刷子覆盖,所以需要UpdateWindow(hwnd句柄)把窗口移上来一层。

 

f,信息循环:也就是说,对在窗口区域内的所有操作程序是通过信息循环来完成的。

                       这个时候我们的MSG结构来了。通过GetMessage(&msg,null,0,0)函数,通过TrasnlateMessage(&msg)传送消息到队列。通过DispatchMessage(&msg)取出一个消息处理。那么处理完一个信息后怎么在回到开始出,调用和接收新一个信息呢,这个时候就有一个叫窗口过程的东西,通过一个callback函数实现回调过程。如果要中断消息的话只要让消息返回0就ok,怎么做呢?关闭窗口就会触发消息返回0.当然也是通过MSG的消息循环做到的。 

  

转载于:https://www.cnblogs.com/sdywcd_coffee/archive/2010/01/18/1650826.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值