欢迎光临散文网 会员登陆 & 注册

win32SDK下仿MFC封装窗口类(QWnd)和应用程序类QWndApp

2022-12-27 11:25 作者:bili_98931215023  | 我要投稿
  1. 指针类型:PWNDMS

  2. 消息结构_tagMessageMap

  3. 枚举类型:SingStyle

  4. 共用体:FuntionStyle

  5. DECLARE_MESSAGE_MAP

  6. BEGIN_MESSAGE_MAP

  7. END_MESSAGE_MAP

  8. 定义窗口的各种消息宏

  9. 应用程序QWinApp类:

  10. 窗口基类QWnd

  11. 应用

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文件中实现


win32SDK下仿MFC封装窗口类(QWnd)和应用程序类QWndApp的评论 (共 条)

分享到微博请遵守国家法律