创建的对话框类为 CMFCTEST2Dlg
在 MFCTEST2Dlg.h : 头文件 定义
#define WM_MYMESSAGE (WM_USER + 100) //step 1 .... // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);//自定义消息 DECLARE_MESSAGE_MAP()
在 MFCTEST2Dlg.cpp 中
BEGIN_MESSAGE_MAP(CMFCTEST2Dlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDOK, &CMFCTEST2Dlg::OnBnClickedOk) ON_MESSAGE(WM_MYMESSAGE,&CMFCTEST2Dlg::OnMyMessage)//自定义消息 ON_BN_CLICKED(IDC_ADD, &CMFCTEST2Dlg::OnBnClickedAdd) END_MESSAGE_MAP() 。。。。。。。 LRESULT CMFCTEST2Dlg::OnMyMessage(WPARAM wParam, LPARAM lParam) { MessageBox(_T("recv msg success")); for(int i=0;i<100;i++) { Sleep(1800); pbar->StepIt(); } //添加自己的消息处理 // …… return 0; }
在自定义类CpublishPoint 中
在PublishPoint.h 头文件中
#define WM_MYMESSAGE (WM_USER + 100) //必须与接收消息端一致
在 PublishPoint.cpp 中
void CPublishPoint::TestMessage(CWnd* pWnd) { pWnd->SendMessage(WM_MYMESSAGE, 0, 0); }
CWnd 为 对话框句柄
对话框中的句柄获取方式:
CWnd* pWnd = CWnd::FindWindow(NULL,_T("MFCTEST2")); //后面为对话框caption属性之
将 pWnd 传递给 CpublishPoint 类
CPublishPoint *cpp=new CPublishPoint();
cpp->TestMessage(pWnd);