MFC小结

Windows应用程序与以往的DOS程序不同,它是以消息为基础、以事件为驱动的应用程序,应用程序在运行时,会不断地等待操作系统发送给自身的消息,利用一个while循环,然后依据不同的消息进行处理。

接收并且处理消息的主角是窗口,每一个窗口都有一个负责处理消息的函数,通常称之为“窗口函数”或“回调函数”,当窗口获得一个消息时,窗口函数会判断消息的类型,并确定如何处理消息。因此开发人员需要负责设计窗口函数,以实现其预定的功能。

这里所说的窗口并不单指对话框,按钮,编辑框,组合框等控件也可以称为窗口。

在Windows应用程序中,句柄是一个非常重要的概念,它起到标识对象的作用,系统的内核对象(进程、线程、事件等)、GDI对象(窗口、图标、光标等)都包含一个句柄,当系统在创建内核对象或GDI对象时会为其分配内存,同时返回这些对象的标识,即句柄。

此后程序对这些对象进行操作都是通过句柄进行的。

窗口创建的消息为WM_CREATE

消息类型:

一类是系统预定义的消息,一类是用户自定义的消息。

系统消息由前缀和后缀2部分组成,前缀表示处理该消息的窗口类别,后缀描述消息的内容,

例如:WM_CLOSE  WM表示处理该消息的窗口为一般窗口, CLOSE表示窗口关闭

系统消息前缀:

WM 普通窗口消息

BM  按钮消息

CB   组合框消息

ABM      应用程序桌面工具条消息

DBT       设备消息

CBEM    扩展组合框消息

CDM      通用对话框消息

DL         下拉列表框消息

DM         对话框默认的Push按钮消息

DTM       日期和时间控件消息

HDM      Header控件消息

HKM      热键消息

IPM        IP控件消息

LB          列表框控件消息

LVM       列表视图控件消息

MCM      日历控件消息

PBM       进度条控件消息

PGM       Pager控件消息

PSM       属性标签消息

RB          伸缩条消息

SB          状态栏消息

SBM       滚动条消息

STM       静态控件消息

TB          工具条消息

TBM       跟踪条消息

TCM       标签控件消息

TTM       工具提示消息

TVM       树视图控件消息

UDM      微调按钮控件消息

EM         编辑框控件消息

系统保留了0x0000----0x03ff的消息值,

用户可以使用0x0400---0x7fff(WM_USER)的消息值。

       为了获得系统范围内唯一的消息字符串,可以调用RegisterWindowMessage函数,向其传递一个消息字符串,该函数会返回一个0XC000---0XFFFF的系统范围内唯一的消息标识符。

 

 

消息循环:

MSG msg;

While( GetMessage( &msg, NULL, 0, 0) )

{

       TranslateMessage( &msg );

       DispatchMessage( &msg );

}

 

 

程序的进入点:

WinMain函数

 

posted @ 2012-05-07 09:19  [无名]  阅读(307)  评论(0编辑  收藏  举报