《快捷键和控制条》PPT课件.ppt
《《快捷键和控制条》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《快捷键和控制条》PPT课件.ppt(77页珍藏版)》请在三一办公上搜索。
1、第4章 菜单、快捷键和控制条,内容摘要:菜单快捷菜单动态生成菜单工具条状态条,返回目录,菜单基础知识,Windows应用程序中除了客户区外还有非客户区。非客户区包括窗口的边框、标题栏、菜单栏、工具栏、状态栏和滚动条。其中菜单栏、工具栏和状态栏是用户与应用程序进行交互的重要工具。,菜 单,几乎所用的Windows应用程序都会使用到菜单,它为用户提供了操作应用程序需要的命令,是应用程序中可操作命令的集合。菜单分为两类:一类是依附于框架窗口的一般菜单,包括主菜单和子菜单。,菜 单,主菜单是最高层的菜单,子菜单是从主菜单下拉出的菜单,其位置都是固定的;另一类是弹出式菜单,也称为快捷菜单,是单击鼠标右键
2、后,在光标位置出现的浮动式菜单。添加新菜单项 编辑菜单项的属性,菜 单,删除菜单项 添加菜单消息处理函数 启用和禁用菜单命令 复选和单选标记菜单命令 创建弹出式菜单 快捷键,添加新菜单项,应用AppWizard创建的应用程序菜单栏。在多文档界面下增加了一个“窗口”菜单项。,添加新菜单项,用户往往不满足于AppWizard自动生成的菜单项,比如创建文件翻译系统中的菜单栏时,除以上菜单项外可能还需要对翻译语言提供选择菜单项。这时就需要用户根据自己的实际需要手动为菜单栏添加菜单项。,编辑菜单项的属性,在为菜单项添加名称时,系统已经自动打开一个名为“Menu Item Properties”的对话框。
3、输入的菜单项名称将会出现在“标题”文本框处。,编辑菜单项的属性,该对话框中各选项的含义分别是:“ID”文本框:菜单项的唯一标识,可由系统生成,也可由用户自定义。“标题”文本框:用户可见的菜单项名称。,编辑菜单项的属性,编辑菜单项的属性,“暂停”下拉列表框:选中相应菜单后就退出其所在的菜单。“提示”文本框:鼠标移动到相应菜单处时,在窗口状态栏会出现提示信息。,例题分析,4.1 菜单,学习目标1.响应菜单消息2.控制菜单状态3.使用快捷键,3.1,返回第4章,程序的实现步骤,1、利用AppWizard生成程序框架(MenuTest)2、编辑资源 3、加入菜单消息处理函数 4、菜单命令的更新控制,步
4、骤1 生成程序框架(MenuTest),项目名称:MenuTest选择单文档界面应用程序(Single document),步骤2 编辑资源,1.编辑菜单资源 画图 Pop-up 选中 Caption ID Prompt 矩形(&R)tCtrl+R ID_DRAW_RECT 在视图中画矩形 椭圆(&C)tAlt+C ID_DRAW_CIRCLE 在视图中画椭圆 2.编辑快捷键资源ID ModifiersKey ID_DRAW_RECT Ctrl R ID_DRAW_CIRCL Alt C,步骤3 加入菜单消息处理函数,Class Name Objects IDs MessagesCMenuTe
5、stView ID_DRAW_RECT COMMANDCMenuTestView ID_DRAW_ CIRCLE COMMAND,void CMenuTestView:OnDrawRect()CClientDC dc(this);dc.Rectangle(50,50,200,150);,void CMenuTestView:OnDrawCircle()CClientDC dc(this);dc.Ellipse(250,50,400,150);,步骤4 菜单命令的更新控制,1.在画图 菜单中再添加两个菜单项Caption ID Prompt 允许画矩形 ID_DRAW_ENABLE-禁止画矩形
6、ID_DRAW_DISABLE-在视类中添加一个记录当前“矩形”菜单项状态的变量BOOL m_Enable;3.在构造函数中初始化数据成员m_Enable m_ Enable=TRUE;,步骤4 菜单命令的更新控制,4.添加 菜单响应函数Class Name Objects IDs MessagesCMenuTestView ID_DRAW_ENABLE COMMANDCMenuTestView ID_DRAW_ DISABLE COMMANDCMenuTestView ID_DRAW_RECT UPDATE_COMMAND_UI CMenuTestView ID_DRAW_ENABLE UP
7、DATE_COMMAND_UI CMenuTestView ID_DRAW_ DISABLE UPDATE_COMMAND_UI,void CMenuTestView:OnUpdateDrawRect(CCmdUI*pCmdUI)pCmdUI-Enable(m_Enable);,步骤4 菜单命令的更新控制,void CMenuTestView:OnDrawDisable()m_Enable=FALSE;,void CMenuTestView:OnDrawEnable()m_Enable=TRUE;,void CMenuTestView:OnUpdateDrawEnable(CCmdUI*pCm
8、dUI)pCmdUI-SetCheck(m_Enable?1:0);,void CMenuTestView:OnUpdateDrawDisable(CCmdUI*pCmdUI)pCmdUI-SetCheck(m_Enable?0:1);,基本知识,1、pCmdUI-Enable(true|false);说明:使用户界面对象有效或无效2、pCmdUI-SetCheck(1|0);说明:设置或取消选中用户界面对象3、使用COMMAND消息响应菜单项的选择事件 4、UPDATE_COMMAND_UI消息控制菜使用单项状态,4.2 快捷菜单,学习目标1.实现快捷菜单,返回第4章,程序的实现步骤,1、编
9、辑快捷菜单资源2、显示跟踪菜单3、添加菜单响应函数4、实现对话框功能,步骤1 编辑快捷菜单资源,添加菜单(IDR_POPUP_MENU)Popup1 选中Pop-up Caption ID 编辑矩形坐标 ID_EDIT_RECT 编辑椭圆坐标 ID_EDIT_CIRCLE,4.2,步骤2 显示快捷菜单,添加响应函数Class Name ObjectsIDs MessagesCMainFrame CMainFrame WM_CONTEXTMENU,4.2,void CMainFrame:OnContextMenu(CWnd*pWnd,CPoint point)/TODO:Add your mes
10、sage handler code hereCMenu menu;if(menu.LoadMenu(IDR_POPUP_MENU)CMenu*pPopup=menu.GetSubMenu(0);pPopup-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);,步骤2 显示快捷菜单,4.2,步骤3 添加菜单消息处理函数,(1)编辑对话框资源,静态文本框,IDC_STATIC,左上角坐标(X1,Y1)静态文本框,IDC_STATIC,右下角坐标(X2,Y2)编辑框,IDC_EDIT_X1编辑框,IDC_EDIT_Y
11、1编辑框,IDC_EDIT_X2编辑框,IDC_EDIT_Y2按扭控件,IDOK,确定按扭控件,IDCANCEL,取消,4.2,步骤3 添加菜单消息处理函数,(2)为对话框添加控件关联变量 IDC_EDIT_X1,int,m_nX1IDC_EDIT_Y1,int,m_nY1IDC_EDIT_X2,int,m_nX2IDC_EDIT_Y2,int,m_nY2(3)在主框架中加入变量并初始化 int m_nRectLeft;int m_nRectTop;int m_nRectRight;int m_nRectBottom;int m_nCircleLeft;int m_nCircleTop;int
12、 m_nCircleRight;int m_nCircleBottom;,4.2,CMainFrame:CMainFrame()/TODO:add member initialization code herem_nRectLeft=50;m_nRectTop=50;m_nRectRight=200;m_nRectBottom=150;m_nCircleLeft=50;m_nCircleTop=50;m_nCircleRight=200;m_nCircleBottom=150;,步骤3 添加菜单消息处理函数,4.2,void CMenuTestView:OnDrawRect()CMainFra
13、me*pMainFrame=(CMainFrame*)AfxGetApp()-GetMainWnd();CClientDC dc(this);dc.Rectangle(pMainFrame-m_nRectLeft,pMainFrame-m_nRectTop,pMainFrame-m_nRectRight,pMainFrame-m_nRectBottom);void CMenuTestView:OnDrawCircle()CMainFrame*pMainFrame=(CMainFrame*)AfxGetApp()-GetMainWnd();CClientDC dc(this);dc.Ellips
14、e(pMainFrame-m_nCircleLeft,pMainFrame-m_nCircleTop,pMainFrame-m_nCircleRight,pMainFrame-m_nCircleBottom);,步骤3 添加菜单消息处理函数,(4)修改画图函数,4.2,步骤3 添加菜单消息处理函数,(5)加入菜单消息处理函数,void CMenuTestView:OnEditRect()CDlgEdit dlg(1);dlg.DoModal();void CMenuTestView:OnEditCircle()CDlgEdit dlg(2);dlg.DoModal();,4.2,步骤4 实现对
15、话框功能,(1)修改构造函数,CDlgEdit:CDlgEdit(int type,CWnd*pParent/*=NULL*/):CDialog(CDlgEdit:IDD,pParent)/AFX_DATA_INIT(CDlgEdit)m_nX1=0;m_nX2=0;m_nY1=0;m_nY2=0;/AFX_DATA_INITm_nType=type;,(2)添加确定命令按扭响应函数OnOK(),4.2,步骤4 实现对话框功能,void CDlgEdit:OnOK()UpdateData(TRUE);CMainFrame*pMainFrame=(CMainFrame*)AfxGetApp()-
16、GetMainWnd();if(m_nType=1)pMainFrame-m_nRectLeft=m_nX1;pMainFrame-m_nRectTop=m_nY1;pMainFrame-m_nRectRight=m_nX2;pMainFrame-m_nRectBottom=m_nY2;else if(m_nType=2)pMainFrame-m_nCircleLeft=m_nX1;pMainFrame-m_nCircleTop=m_nY1;pMainFrame-m_nCircleRight=m_nX2;pMainFrame-m_nCircleBottom=m_nY2;CDialog:OnOK
17、();,4.2,基本知识,OnContextMenu()函数 CMenu类(1)LoadMenu()函数:载入菜单资源(2)TrackPopupMenu()函数:在指定位置弹出菜单。AfxGetApp()函数CWinApp 类的GetMainWnd()函数,4.2,形式参数说明,4.3 动态菜单,学习目标1.菜单动态增加与删除2.用户自定义消息3.动态菜单消息响应,4.3,返回第4章,程序的实现步骤,编辑菜单资源添加菜单响应函数加入动态菜单响应函数,4.3,步骤1 编辑菜单资源,为菜单(IDR_POPUP_MENU)添加两个菜单项:Caption ID1.Seprator2.增加椭圆控制菜单
18、ID_ADD_MENU 3.删除椭圆控制菜单 ID_DELETE_MENU,4.3,步骤2 添加菜单响应函数,1.OnAddMenu()2.OnDeleteMenu(),4.3,步骤2 添加菜单响应函数,4.3,void CMainFrame:OnAddMenu()/TODO:Add your command handler code hereCString menu2;menu0=允许画椭圆;menu1=禁止画椭圆;CWnd*pMainFrame=AfxGetMainWnd();CMenu*pMenuDyna=NULL;CMenu*pMenu=NULL;CMenu*pTopMenu=pMai
19、nFrame-GetMenu();int iPos;for(iPos=pTopMenu-GetMenuItemCount()-1;iPos=0;iPos-)pMenu=pTopMenu-GetSubMenu(iPos);if(pMenu,步骤2 添加菜单响应函数,4.3,void CMainFrame:OnDeleteMenu()/TODO:Add your command handler code hereCWnd*pMainFrame=AfxGetMainWnd();CMenu*pMenuDyna=NULL;CMenu*pMenu=NULL;CMenu*pTopMenu=pMainFram
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快捷键和控制条 快捷键 控制 PPT 课件

链接地址:https://www.31ppt.com/p-5583563.html