MFC深入浅出笔记 ①

Windows三大模块:GDI32.DLL USER32.DLL KERNEL32.DLL

 

一些缩写:

API: Application Programming Interface

DLL: Dynamic Link Library

GUI:  Graphics User Interface

MDI:  Multiple Document Interface

MFC:  Microsoft Foundation Class

OLE: Object Linking & Embedded

OWL:Object Windows Library

SDK:Software Development Kit

SDI: Single Document Interface

UI:  User Interface

 

 

 

每个Windows程序都有一个如下循环

 

Msg msg;

  while(GetMessage(&msg,NULL,NULL,NULL))

{

       TranslateMessage(&msg);

       DispatchMessage(&msg);

}

 

MSG的数据结构

 

typedef struct tagMsg

{

     HWND  hwnd;

     UINT  message;    //WM_xxx

     WPARAM wParam;

     LPARAM  lParam;

     DWORD  time;

     POINT  pt;

}

 

 

 

 

 

Windows程序的生与死:

 

 

 

 1、程序初始化中调用CreateWindow,为程序创建一个窗口,作为程序的屏幕舞台。CreateWindow产生窗口之后产生WM_CREATE直接给窗口函数,后者于是可以在此时做些初始化操作

 2、在程序活着的过程中,不断以GetMessage从消息队列中抓取消息。如果这个消息是WM_QUIT,GetMessage会传回0而结束while循环,进而结束整个程序。

 3、DispatchMessage通过Windows USER模块的协助和监督,把消息分派至窗口函数。消息将在该处被判别并处理。

 4、程序不断进行2、和3、的操作。

 5、当使用者按下系统菜单中的Close命令项时,系统发出WM_CLOSE。通常程序的窗口函数不拦截此消息,于是DefWindowProc处理它。

 6、DefWindowProc收到WM_CLOSE后,调用DestroyWindow把窗口清除。DestroyWindow本身又会送出WM_DESTROY。

 7、程序对WM_DESTROY的标准反应是调用PostQuitMessage。

 8、PostQuitMessage没什么其他操作,就只送出WM_QUIT消息,准备让消息循环中的GetMessage取得,结束消息循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值