vc view doc frame和消息流向,UPDATE_COMMAND_UI
2011-11-12 13:34
459 查看
***************************************************************************************************************************************************************
对于新建的菜单的一个消息,
对于多文档的IDR_xxTYPE的菜单项消息
比如ON_COMMAND(ID_test, Ontest)
首先会被view的ON_COMMAND(ID_test, Ontest这个handler拦截
再doc的
再childframe的
再app的
再mainframe的.
对于多文档的IDR_MAINFRAME的菜单项消息
先被mainframe的handler拦截
再app的。
对于单文档的菜单项消息
比如 ON_COMMAND(ID_test, Ontest)
首先会被view的ON_COMMAND(ID_test, Ontest)这个handler拦截
再doc的,
再mainframe的.
再app的。
***************************************************************************************************************************************************************
对于mfc预置的菜单的一个消息,对于多文档的。深入浅出MFC p447
深入浅出MFC p726
***************************************************************************************************************************************************************
p461
***************************************************************************************************************************************************************
和界面有关的往往放在CFrameWnd中,和数据有关的可放在CDocument中,和数据的显示有关的可放在CView中
一般放在cview
***************************************************************************************************************************************************************
UPDATE_COMMAND_UI消息
每当选单被拉并尚未显示之前,其命令项(以及对应之工具栏按钮)都会收到UPDATE_COMMAND_UI讯息,一般用于改变菜单项的状态显示
对于新建的菜单的一个消息,
对于多文档的IDR_xxTYPE的菜单项消息
比如ON_COMMAND(ID_test, Ontest)
首先会被view的ON_COMMAND(ID_test, Ontest这个handler拦截
再doc的
再childframe的
再app的
再mainframe的.
void CMainFrame::Ontest1() { // TODO: Add your command handler code here AfxMessageBox("mainframe"); } void CSiiApp::Ontest1() { AfxMessageBox("app"); // TODO: Add your command handler code here } void CChildFrame::Ontest1() { // TODO: Add your command handler code here AfxMessageBox("child"); } void CSiiDoc::Ontest1() { // TODO: Add your command handler code here AfxMessageBox("doc"); } void CSiiView::Ontest1() { // TODO: Add your command handler code here AfxMessageBox("view"); }
对于多文档的IDR_MAINFRAME的菜单项消息
先被mainframe的handler拦截
再app的。
对于单文档的菜单项消息
比如 ON_COMMAND(ID_test, Ontest)
首先会被view的ON_COMMAND(ID_test, Ontest)这个handler拦截
再doc的,
再mainframe的.
再app的。
***************************************************************************************************************************************************************
对于mfc预置的菜单的一个消息,对于多文档的。深入浅出MFC p447
深入浅出MFC p726
***************************************************************************************************************************************************************
p461
***************************************************************************************************************************************************************
和界面有关的往往放在CFrameWnd中,和数据有关的可放在CDocument中,和数据的显示有关的可放在CView中
一般放在cview
***************************************************************************************************************************************************************
UPDATE_COMMAND_UI消息
每当选单被拉并尚未显示之前,其命令项(以及对应之工具栏按钮)都会收到UPDATE_COMMAND_UI讯息,一般用于改变菜单项的状态显示
void CSiiView::Ontest1() { // TODO: Add your command handler code here AfxMessageBox("hello"); if (m_bCheck) {m_bCheck=0; } else {m_bCheck=1; } } void CSiiView::OnUpdatetest1(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_bCheck); // pCmdUI->Enable(0); }
相关文章推荐
- VC 对话框程序 menu菜单响应UPDATE_COMMAND_UI 消息
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- 【VC++】在对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 总结VC中VIEW类与DOC类,doc,view,frame互相调用
- [VC++]CToolBar按钮不能响应ON_UPDATE_COMMAND_UI?
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- 消息响应COMMAND 和 UPDATE_COMMAND_UI的区别,使用范围的区别,使用对象的区别,等等方面的。
- [转][VC/MFC]让对话框对UPDATE_COMMAND_UI生效
- 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息
- [VC/MFC]让对话框对UPDATE_COMMAND_UI生效
- MFC对话框程序中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别,OnMenuSelect事件介绍
- 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息
- 消息响应COMMAND 和 UPDATE_COMMAND_UI的区别,使用范围的区别,使用对象的区别,等等方面的。
- 消息响应COMMAND 和 UPDATE_COMMAND_UI的区别
- MFC对话框程序中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息
- VC++中的ON_COMMAND_RANGE宏和ON_UPDATE_COMMAND_UI_RANGE宏
- MFC:ON_UPDATE_COMMAND_UI和ON_COMMAND消息的区别