方便每一个TabLayout的界面都可以用一个类去处理;避免将所有的消息写到同一个主窗口类中;方便维护;
主窗口代码:
构造函数中添加
CEtcdMainWnd::CEtcdMainWnd()
{
AddVirtualWnd(_T("PatManage"),&m_PatManagePage); //加载“病例管理”界面 PatManage与xml配置必须相同
m_PatManagePage.Init(&m_PaintManager,NULL);
}
xml配置
<HorizontalLayout virtualwnd="PatManage">
<Include source="PatManagePage.xml" />
</HorizontalLayout>
类中添加消息处理类的成员变量
CPatManagePage m_PatManagePage;
消息处理类的声明与定义
.h文件
#ifndef _ETCD_PATMANAGE_PAGE_H__
#define _ETCD_PATMANAGE_PAGE_H__
#include "stdafx.h"
class CPatManagePage : public DuiLib::CNotifyPump
{
public:
CPatManagePage();
~CPatManagePage();
void Init(CPaintManagerUI *pPaint, HWND hWnd);
public:
DUI_DECLARE_MESSAGE_MAP() //定义消息
virtual void OnClick(TNotifyUI& msg);
virtual void OnSelectChange(TNotifyUI &msg); //定义消息
private:
CPaintManagerUI *m_PaintManager;
HWND m_hWnd;
};
#endif
.cpp文件
#include "stdafx.h"
#include "EtcdPatManagePage.h"
DUI_BEGIN_MESSAGE_MAP(CPatManagePage, CNotifyPump)//定义消息
DUI_ON_MSGTYPE(DUI_MSGTYPE_CLICK,OnClick)
DUI_ON_MSGTYPE(DUI_MSGTYPE_SELECTCHANGED,OnSelectChange)
DUI_END_MESSAGE_MAP()//定义消息
CPatManagePage::CPatManagePage(){}CPatManagePage::~CPatManagePage(){}void CPatManagePage::Init(CPaintManagerUI *pPaint, HWND hWnd){m_hWnd = hWnd;m_PaintManager = pPaint; //这个是为了能够在此类中找到相关控件}void CPatManagePage::OnClick(TNotifyUI& msg) //消息处理函数{ }void CPatManagePage::OnSelectChange(TNotifyUI &msg)//消息处理函数{}