快要被搞疯了,求大侠指点:
编写了一个简单的程序,界面如下:
窗口分为左右两部分,左边是一个视图类CMakerRoverView,右边是另一个视图CSettingView,其中包含了一个对话框。
现在希望能通过右边对话框中的按钮发送消息去控制左边视图做出一些动作,使用的代码如下:
resource.h:
#define WM_MY_SHOWIMG WM_USER + 5
SettingView.cpp:
void CSettingView::OnBnClickedShowImg()
{
// TODO: 在此添加控件通知处理程序代码
CMakerRoverView* pView = GetActiveView();
if (pView != NULL)
pView->PostMessage(WM_MY_SHOWIMG, 0, 0);
// pView->ShowMsg();
}
//get current active view
CMakerRoverView* CSettingView::GetActiveView()
{
CMainFrame* pFrame = (CMainFrame*)(AfxGetMainWnd());
return (CMakerRoverView*)(pFrame->GetActiveView());
}
MakerRoverView.h:
protected:
afx_msg LRESULT OnShowImg(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
MakerRoverView.cpp
BEGIN_MESSAGE_MAP(CMakerRoverView, CView)
ON_MESSAGE(WM_MY_SHOWIMG, OnShowImg)
END_MESSAGE_MAP()
LRESULT CMakerRoverView::OnShowImg(WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加控件通知处理程序代码
MessageBox(_T("hello"));
return 0;
}
按下按钮后程序没有任何反应。
在MakerRoverView.cpp中还定义了一个函数
void CMakerRoverView::ShowMsg()
{
MessageBox(_T("hello"));
}
如果取消掉pView->ShwoMsg();这行的注释,则按下按钮后能够弹出一个消息框,但通过传送消息的方式则不能弹出对话框
求大侠指点问题出在哪里?搞疯了