首先强调一点, Menu是归属在MainFrame中的。
所以动态创建菜单需要在MainFrame中完成,当然也不是必须的。 只是这样比较方便而已。
在CMainFrame的OnCreate事件处理函数中添加以下代码:
CMenu menu;
menu.CreatePopupMenu();
GetMenu()->AppendMenuW(MF_POPUP,(UINT) menu.m_hMenu, _T("VC++"));
menu.AppendMenuW(MF_STRING, 111, _T("Hello"));
menu.AppendMenuW(MF_STRING, 112, _T("World"));
menu.Detach();
//将菜单装配到菜单栏,解除与CMenu对象的绑定。
//或者将CMenu的对象声明到CMainFrame的头文件中,否则会因为
//CMainFrame::OnCreate方法执行结束,CMenu对象被销毁,而产生程序错误。
因为菜单为动态添加,所以这些子菜单的事件处理程序需要自己手动添加。
1. 定义子菜单ID。 在CMainFrame的头文件中,定义一个宏。
#define IDM_HELLO 111
2. 在头文件中,声明事件处理函数:
afx_msg void OnHello();
3, 在MainFrame源文件的事件映射中,添加菜单与事件处理函数的映射:
ON_COMMAND(IDM_HELLO, &CMainFrame::OnHello)
4. 在MainFrame源文件,定义事件处理函数
void CMainFrame::OnHello()
{
MessageBox(_T("Hello"));
}
分享到:
相关推荐
Visual C++深入详解学习笔记,word文檔
VC++深入详解学习笔记(非常全面)
上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档
VC++深入详解,学习VC++的经典教材
孙鑫 VC++ 深入详解书中源码
VC++深入详解 书上的源码(全) VC++深入详解 书上的源码(全) VC++深入详解 书上的源码(全)
VC++深入详解完整版,并带完整详细的书签,包括每章,每节的书签索引。
《VC++深入详解》从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。 《VC++...
《VC++深入详解》从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。 《VC++...
VC++深入详解
上传限制无奈分卷压缩 一共12卷 要12卷在同目录才可以解压 给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档
VC++深入详解代码3-4章,很全的东西
上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档
VC++深入详解电子书(完整版).part3
上传限制无奈分卷压缩一共12卷 要12卷在同目录才可以解压给大家带来不便请你们谅解 VC++深入详解pdf版 VC++深入详解 VC++深入详解电子档