VC编程练习之API笔记(五)—动态菜单的制作
2014-01-01 17:35
357 查看
1、 添加动态菜单并相应消息函数:
(1)、进入resource.h文件添加动态生成的菜单的ID号:
#define IDM_TEST1 001
(2)、进入MainFrame.h添加响应菜单项函数的声明:
afx_msg void OnTest1();
(3)、进入MainFrame.cpp添加响应函数的消息映射:
ON_COMMAND(IDM_TEST1,OnTest1)//将菜单ID和响应函数进行消息映射
(4)、到OnCreate()函数中添加动态菜单生成的代码:
(5)、在OnTest1()中添加动态菜单被按下时的处理:
2、 扩展:利用键盘输入并在文档中输出,按下回车键创建动态菜单,单击动态生成的菜单在文档中将相应的文本输出:
(1)、进入resource.h文件添加动态生成的菜单的ID号:
#define IDM_TEST1 001
(2)、进入MainFrame.h添加响应菜单项函数的声明:
afx_msg void OnTest1();
(3)、进入MainFrame.cpp添加响应函数的消息映射:
ON_COMMAND(IDM_TEST1,OnTest1)//将菜单ID和响应函数进行消息映射
(4)、到OnCreate()函数中添加动态菜单生成的代码:
CMenu menu; menu.CreatePopupMenu();//创建弹出菜单,返回值非零创建成功 GetMenu()->AppendMenu(MF_POPUP,(UINT)menu.m_hMenu,"Test");//添加菜单 menu.AppendMenu(MF_STRING,IDM_TEST1,"Test1");//添加子菜单 menu.Detach();
(5)、在OnTest1()中添加动态菜单被按下时的处理:
void CMainFrame::OnTest1() { MessageBox("This is a Test!"); }
2、 扩展:利用键盘输入并在文档中输出,按下回车键创建动态菜单,单击动态生成的菜单在文档中将相应的文本输出:
//响应键盘输入的消息:WM_CHAR void CCMenu_11View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CClientDC dc(this); if(0x0d==nChar)//判断是否是回车键按下 { if(0==++m_nIndex) { m_menu.CreatePopupMenu();//创建弹出菜单 GetParent()->GetMenu()->AppendMenu(MF_POPUP, (UINT)m_menu.m_hMenu,"Show"); //菜单属于框架类,所以先取得其父窗口的指针 GetParent()->DrawMenuBar(); //重绘菜单栏 } m_menu.AppendMenu(MF_STRING,IDM_SHOW1+m_nIndex,m_strLine.Left(m_strLine.Find(" ")));//添加子菜单 m_strArray.Add(m_strLine); m_strLine.Empty(); Invalidate();//使整个窗口客户区无效,窗口客户无效即需要重绘 } else { m_strLine+=nChar; dc.TextOut(0,0,m_strLine);//回显输入的字符 } CView::OnChar(nChar, nRepCnt, nFlags); } //响应动态菜单处理的函数 void CCMenu_11View::OnShow1() { // TODO: Add your command handler code here CClientDC dc(this); dc.TextOut(0,0,m_strArray.GetAt(0)); }
相关文章推荐
- VC编程练习之API笔记(三)
- VC编程练习之API笔记(四)
- VC编程练习之API笔记(二)
- VC编程练习之API笔记(一)
- Python(编程小白的第一本 Python 入门书) 学习笔记2——代码练习
- 嵌入式学习笔记之UART编程练习
- java怎么制作api文档(下一个笔记里面有,但是感觉比较有用,所以单独提出来)
- VC++网络安全编程范例(1)--数字证书有效期验证--学习笔记
- VC编程制作系统托盘程序 - 任务栏
- 孙鑫VC++讲座笔记(7) 对话框编程 (BY Mickor.Guo)
- C++ Primer Plus 学习笔记 第四章 04编程练习
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api
- 深入浅出VC++串口编程之基于Win32 API
- 孙鑫VC++讲座笔记(7) 对话框编程
- 蓝牙协议学习笔记(2)-android 编程api
- 【VC编程】笔记2--SDK编程的模板程序/MFC消息映射机制的本质解析
- jdbc.api数据库编程实作教材 笔记3
- vc++HOOK API黑客外挂编程必知必会
- VC++编程之第二课笔记――C++的继承封装多态
- 慕课网编程练习:制作一个表格,显示班级的学生信息。