在单文档中,我想在CMainFrame中调用CMyView中的函数(消息处理函数),我不知怎么解决,哪位大哥能给我指点。class CMyView : public CListView
{
....
afx_msg void OnDepartReg();
...
};CMainFrame::MyFun()
{
....
//我想在这调用OnDepartReg(),怎么解决。用SendMessage()可以吗?
....
}
{
....
afx_msg void OnDepartReg();
...
};CMainFrame::MyFun()
{
....
//我想在这调用OnDepartReg(),怎么解决。用SendMessage()可以吗?
....
}
解决方案 »
- 超级玛丽的多线程问题
- 怎么实现三根网线自由切换?
- 我怎么用不好EnumChildWindows...
- 各位大哥救救小女子啊:计算机语音控制系统设计中关于实现计算机指令控制系统的问题
- 请问大家,在新建的工程里面有个后面三个字母是App的类,比如CMydlgApp,这一般是干什么用的?
- 如何将一个BMP图片放大,不要失真哟!
- vc中工作者线程能再创建子线程?如果能,新的子线程与它是什么关系呢?(在线)
- 如何读取本机的某个网络端口的数据
- 武汉的vc高手,请进!
- 关于CreateFileMapping的几个小问题?
- 如何将SQL Server数据库打包到程序的安装文件中?
- 请问有西安的哥们吗?请进,问个问题.
msdn中的例子
CMDIFrameWnd *pFrame =
(CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;// Get the active MDI child window.
CMDIChildWnd *pChild =
(CMDIChildWnd *) pFrame->GetActiveFrame();// or CMDIChildWnd *pChild = pFrame->MDIGetActive();// Get the active view attached to the active MDI child
// window.
CMyView *pView = (CMyView *) pChild->GetActiveView();
pView->YouFunc();
CDocument* pDoc = ((CFrameWnd*)pChild)->GetActiveDocument();
CMyDoc = ((CMyDoc *)pDoc);
afx_msg void OnDepartReg(WPARAM wParam, LPARAM lParam));
// View.hON_MESSAGE(IDM_MSG, DepartReg) //view.cppCMyView::DepartReg(WPARAM wParam, LPARAM lParam)
{
}//view.cppSendMessage(IDM_MSG ..)//frame.cpp
#define IDM_MSG WM_USER+1//TestView.h
class CTestView : public CView
{
...
protected:
afx_msg void OnDepartReg(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
...
};//TestView.cpp
BEGIN_MESSAGE_MAP(CTestView, CView)
...
ON_MESSAGE(IDM_MSG,OnDepartReg)
...
END_MESSAGE_MAP()
...
...
void CTestView::OnDepartReg(WPARAM wParam, LPARAM lParam)
{
MessageBox("kdsjf");
}//MainFrame.cpp
void CMainFrame::OnTest()
{
SendMessage(IDM_MSG);//怎么不调用CTestView::OnDepartReg(),是不是SendMessage()参数不对?????????????
}
void CMainFrame::OnTest()
{
// TODO: Add your command handler code here
GetActiveView()->SendMessage(IDM_MSG);//因为你这个消息是在CView 中有映射
}