win32SDK下仿MFC封装窗口类(QWnd)和应用程序类QWndApp
指针类型:PWNDMS
消息结构_tagMessageMap
枚举类型:SingStyle
共用体:FuntionStyle
DECLARE_MESSAGE_MAP
BEGIN_MESSAGE_MAP
END_MESSAGE_MAP
定义窗口的各种消息宏
应用程序QWinApp类:
窗口基类QWnd
应用
1.定义函数指针类型:PWNDMS
2.定义消息结构_tagMessageMap
3.定义函数样式的枚举类型:SingStyle
4.定义函数样式的共用体:FuntionStyle
和上面的函数样式一一对应
5.定义动态创建消息映射宏:DECLARE_MESSAGE_MAP
函数说明:
GetMessageMap: 获得当前类中的消息数组首地址
GetThisMessageMap: 在这函数中创建当前类的消息结构数组
FindMessageMap: 在当前类中查找指定的消息,找到返回这个消息,没找到返回父类的FindMessageMap继续查找,直到找到或为NULL
6.定义开始消息映射宏:BEGIN_MESSAGE_MAP
(对上面声明的函数具体的实现)
typedef thisClass ThisClass;这是重新定义传进来的本类类名
用于定义窗口各种消息宏的本类类名,在传函数名的时候前面就不耍类名的作用域
如:
ON_WM_COMMAND(USERID_BUTTON, OnUserBtnClick)
函数OnUserBtnClick,如果没有重新定义本类类名就要写成
ON_WM_COMMAND(USERID_BUTTON, MyMainWnd::OnUserBtnClick)
7.定义消息结束宏:END_MESSAGE_MAP
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间填充各种窗口消息
如下实例:
8.定义窗口的各种消息宏
以上窗口常用消息宏的定义,根据需要定义各种各样的消息宏和消息样式
这里面的ThisClass就是上面重新定义的本类类名
typedef thisClass ThisClass;
9.应用程序QWinApp类:
QWinApp.h
QWinApp.cpp
10.窗口基类QWnd
QWnd.h
QWnd.cpp
在AfxQWindowProc函数中返回指定类型的函数指针
11.应用
创建自己的应用程序类:MyWinApp继承QWinApp;
创建自己的窗口类:MyMainWnd继承QWnd;
在.cpp文件中实现