programming windows-----窗口与消息

1 篇文章 0 订阅
1 篇文章 0 订阅

1.消息处理函数

      作用:所谓的消息处理程序指的是对于windows程序是事件驱动的,由此需要消息处理程序来维护windows程序。当使用者更改windows窗口时,windows将此改变的消息发送到windows建立的消息队列中(或直接发送到相应的窗口消息处理程序中),然后等程序将消息发送到相应的窗口消息处理程序,消息处理程序将处理发送到相应的窗口,对其进行改变。

    函数:参数:窗口句柄,消息,消息参数,消息参数

  LRESULT CALLBACK WndProc(HWND hwnd, UINT message,  WPARAM  wParam, LPARAM lParam)        //所谓的CALLBACK指的是进行函数调用,函数的入栈方式,定义

//处#define CALLBACK   _stdcall 。对于LRESULT:  32-bit value returned from a window procedure or callback function,LRESULT指的是longresult即为

//长整形

{

     //处理感兴趣的消息

    switch(message)

   {

     case WM_DESTROY:

              PostQuitMessage(0);     //用户关闭窗口,窗口销毁,程序结束,退出消息循环

     return 0;
   }

  return ::DefWindowProc(hwnd, UINT, wParam, lParam)                 //将剩余的消息送到系统缺省的消息处理函数中

}


2.应用程序主函数 int WINAPI WinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance,  LPSTR szCmdLine, UINT iCmdShow)     //#define WINAPI _stdcall  该语句定

                                {  //定义了一个呼叫约定,包括如何生产机械码以在堆栈中放置函数呼叫的参数,许多windows函数呼叫为WINAPI。第一个参数被称为【执行实体句柄】,该

                                  //句柄唯一的标示该程序。

                                        static TCHAR szAppName[] = TEXT("HelloWin");        //窗口类名称, 在只有一个窗口的程序中,程序名称即为窗口类名称

                                        WNDCLASS    wndclass;              //定制窗口类结构

                                        wndclass,style  =  CS_HREDRAW | CS_VREDRAW

                                        wndclass.lpfnWndProc = WndProc;            // 窗口类别标识了处理窗口消息的窗口消息处理程序,lpfn前缀指的是指向函数的长指标

                                        wndclass.cbClsExtra = 0;                              //为窗体类别结构预留一些额外空间

                                        wndclass.cbWndExtra = 0;                            //windows 内部保存的窗体结构中预留一些额外空间   ,且cb前缀指的是字节数

                                        wndclass.hInstance = hInstance;               //获得程序的实体执行句柄。

                                       

                                }












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值