以前也读过,但是总是过一阵子就忘记了,以后养成读书做笔记的习惯。
一 关于匈牙利标记法
b BOOL
c or ch字符
clrCOLORREF
cx,cy水平或垂直距离
dwDWORD
h句柄
l 长整形
n 整形
p指针
sz 以零结尾的字符串
w WORD
wnd CWnd
strCString
二 常用Afx函数
AfxAbort 无条件终止一应用程序,通常在不可恢复错误发生时调用
AfxBeginThread 创建新线程并开始执行
AfxEndThread终止当前执行线程
AfxMessageBox显示Windows消息框
AfxGetApp 返回指向应用程序对象的指针
AfxGetAppName 返回应用程序的名称
AfxGetMainWnd 返回指向应用程序主窗口的指针
AfxGetInstanceHandle 返回标识当前应用程序实例的句柄
AfxGetRegisterWndClass 为MFC应用程序注册自定义的WNDCLASS类
三 CWinApp类的可覆盖方法
InitInstance函数: 为应用程序提供一个自身初始化的机会,是用来执行程序每次开始都要进行初始化工作的最好地方,返回
TRUE程序执行,返回FALSE则关闭应用程序。
ExitInstance函数: 释放InitInstance函数分配的内存或其他资源。注意调用基类版本。
OnIdle函数: 可以执行垃圾回收等优先级低的后台处理事务。
PreTranslateMessage函数:在消息被调度前进行预处理。
四 MFC如何使用应用程序对象
winmain.cpp中包含AfxWinMain函数,起作用相当于Main。AfxWinMain函数使用CWinApp对象,从而CWinApp对象必须声明为全局。运行开始后,AfxWinMain调用AfxWinInit,并将hInstance,nCmdShow以及其他AfxWinMain函数参数复制给应用程序对象的数据成员,然后调用InitApplication(Win32中没意义)和InitInstance。当AfxWinInit和InitApplication以及InitInstance返回值均为TRUE时,AfxWinMain才执行pThread->Run();开始执行消息循环,知道WM_QUIT消息从队列中被检索到。这是Run跳出循环,并调用ExitInstance,返回到AfxWinMain中。
五 消息映射使用
1.通过将DECLARE_MESSAGE_MAP语句添加到类声明中,声明消息映射。
2.通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAP和END_MESSAGE_MAP的调用之间处理消息。
3.添加成员函数来处理消息。
在类声明中,DECLARE_MESSAGE_MAP通常是最后的语句,因为它使用C++关键字制定成员可见度。在其后面插入语句需要使用public、protected或者private开头。