《快捷键和控制条》PPT课件.ppt

上传人:wuy****n92 文档编号:71299429 上传时间:2023-02-02 格式:PPT 页数:77 大小:417KB
返回 下载 相关 举报
《快捷键和控制条》PPT课件.ppt_第1页
第1页 / 共77页
《快捷键和控制条》PPT课件.ppt_第2页
第2页 / 共77页
点击查看更多>>
资源描述

《《快捷键和控制条》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《快捷键和控制条》PPT课件.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第4章章 菜单、快捷键和菜单、快捷键和控制条控制条 内容摘要:1.菜单2.快捷菜单3.动态生成菜单4.工具条5.状态条返回目录菜单基础知识菜单基础知识n nWindows应用程序中除了客户区外还有非客户区。非客户区包括窗口的边框、标题栏、菜单栏、工具栏、状态栏和滚动条。其中菜单栏、工具栏和状态栏是用户与应用程序进行交互的重要工具。菜菜 单单n n几乎所用的Windows应用程序都会使用到菜单,它为用户提供了操作应用程序需要的命令,是应用程序中可操作命令的集合。菜单分为两类:一类是依附于框架窗口的一般菜单,包括主菜单和子菜单。菜菜 单单n n主菜单是最高层的菜单,子菜单是从主菜单下拉出的菜单,

2、其位置都是固定的;另一类是弹出式菜单,也称为快捷菜单,是单击鼠标右键后,在光标位置出现的浮动式菜单。n n添加新菜单项添加新菜单项 n n编辑菜单项的属性编辑菜单项的属性 菜菜 单单n n删除菜单项删除菜单项 n n添加菜单消息处理函数添加菜单消息处理函数 n n启用和禁用菜单命令启用和禁用菜单命令 n n复选和单选标记菜单命令复选和单选标记菜单命令 n n创建弹出式菜单创建弹出式菜单 n n快捷键快捷键 添加新菜单项添加新菜单项n n应用AppWizard创建的应用程序菜单栏。n n在多文档界面下增加了一个“窗口”菜单项。添加新菜单项添加新菜单项n n用户往往不满足于AppWizard自动生

3、成的菜单项,比如创建文件翻译系统中的菜单栏时,除以上菜单项外可能还需要对翻译语言提供选择菜单项。这时就需要用户根据自己的实际需要手动为菜单栏添加菜单项。编辑菜单项的属性编辑菜单项的属性 n n在为菜单项添加名称时,系统已经自动打开一个名为“Menu Item Properties”的对话框。输入的菜单项名称将会出现在“标题”文本框处。编辑菜单项的属性编辑菜单项的属性n n该对话框中各选项的含义分别是:n n“ID”文本框:菜单项的唯一标识,可由系统生成,也可由用户自定义。n n“标题”文本框:用户可见的菜单项名称。编辑菜单项的属性编辑菜单项的属性编辑菜单项的属性编辑菜单项的属性n n“暂停暂停

4、”下拉列表框:选中相应菜单后就退出其下拉列表框:选中相应菜单后就退出其所在的菜单。所在的菜单。n n“提示提示”文本框:鼠标移动到相应菜单处时,在文本框:鼠标移动到相应菜单处时,在窗口状态栏会出现提示信息。窗口状态栏会出现提示信息。例题分析例题分析4.1 菜单学习目标1.响应菜单消息2.控制菜单状态3.使用快捷键3.13.1返回第4章程序的实现步骤程序的实现步骤1 1、利用、利用、利用、利用AppWizardAppWizard生成程序框架生成程序框架生成程序框架生成程序框架(MenuTest)(MenuTest)2 2、编辑资源、编辑资源、编辑资源、编辑资源 3 3、加入菜单消息处理函数、加入

5、菜单消息处理函数、加入菜单消息处理函数、加入菜单消息处理函数 4 4、菜单命令的更新控制、菜单命令的更新控制、菜单命令的更新控制、菜单命令的更新控制 步骤步骤1 生成程序框架生成程序框架(MenuTest)1.1.项目名称项目名称:MenuTestMenuTest2.2.选择单文档界面应用程序(选择单文档界面应用程序(Single documentSingle document)步骤步骤2 编辑资源编辑资源1.1.编辑菜单资源编辑菜单资源编辑菜单资源编辑菜单资源 画图画图画图画图 Pop-up Pop-up 选中选中选中选中 Caption ID Prompt Caption ID Promp

6、t 矩形矩形矩形矩形(&R)tCtrl+R ID_DRAW_RECT (&R)tCtrl+R ID_DRAW_RECT 在视图中画矩形在视图中画矩形在视图中画矩形在视图中画矩形 椭圆椭圆椭圆椭圆(&C)tAlt+C ID_DRAW_CIRCLE (&C)tAlt+C ID_DRAW_CIRCLE 在视图中画椭圆在视图中画椭圆在视图中画椭圆在视图中画椭圆 2.2.编辑快捷键资源编辑快捷键资源编辑快捷键资源编辑快捷键资源IDID Modifiers ModifiersKey Key ID_DRAW_RECT Ctrl ID_DRAW_RECT Ctrl R R ID_DRAW_CIRCL Alt

7、CID_DRAW_CIRCL Alt C步骤步骤3 加入菜单消息处理函数加入菜单消息处理函数 Class Name Objects IDs Messages1.1.CMenuTestViewCMenuTestView ID_DRAW_RECT COMMAND ID_DRAW_RECT COMMAND2.2.CMenuTestViewCMenuTestView ID_DRAW_ CIRCLE COMMAND ID_DRAW_ CIRCLE COMMANDvoidCMenuTestView:OnDrawRect()voidCMenuTestView:OnDrawRect()CClientDCdc(

8、this);CClientDCdc(this);dc.Rectangle(50,50,200,150);dc.Rectangle(50,50,200,150);voidCMenuTestView:OnDrawCircle()voidCMenuTestView:OnDrawCircle()CClientDCdc(this);CClientDCdc(this);dc.Ellipse(250,50,400,150);dc.Ellipse(250,50,400,150);步骤步骤4 菜单命令的更新控制菜单命令的更新控制 1.1.在画图在画图 菜单中再添加两个菜单项菜单中再添加两个菜单项Caption

9、ID Prompt Caption ID Prompt 允许画矩形允许画矩形 ID_DRAW_ENABLE -ID_DRAW_ENABLE -禁止画矩形禁止画矩形 ID_DRAW_DISABLE -ID_DRAW_DISABLE -2.2.在视类中添加一个记录当前在视类中添加一个记录当前“矩形矩形”菜单项状态的变菜单项状态的变量量BOOL m_Enable;BOOL m_Enable;3.3.在构造函数中初始化数据成员在构造函数中初始化数据成员m_Enablem_Enable m_ Enable=TRUE;m_ Enable=TRUE;步骤步骤4 菜单命令的更新控制菜单命令的更新控制 4.4.

10、添加添加 菜单响应函数菜单响应函数Class Name Objects IDs Messages1.1.CMenuTestViewCMenuTestView ID_DRAW_ENABLE COMMAND ID_DRAW_ENABLE COMMAND2.2.CMenuTestViewCMenuTestView ID_DRAW_ DISABLE COMMAND ID_DRAW_ DISABLE COMMAND3.3.CMenuTestViewCMenuTestView ID_DRAW_RECT UPDATE_COMMAND_UI ID_DRAW_RECT UPDATE_COMMAND_UI 4.4

11、.CMenuTestViewCMenuTestView ID_DRAW_ENABLE UPDATE_COMMAND_UI ID_DRAW_ENABLE UPDATE_COMMAND_UI 5.5.CMenuTestViewCMenuTestView ID_DRAW_ DISABLE UPDATE_COMMAND_UI ID_DRAW_ DISABLE UPDATE_COMMAND_UI voidCMenuTestView:OnUpdateDrawRect(CCmdUI*pCmdUI)voidCMenuTestView:OnUpdateDrawRect(CCmdUI*pCmdUI)pCmdUI-

12、Enable(m_Enable);pCmdUI-Enable(m_Enable);步骤步骤4 菜单命令的更新控制菜单命令的更新控制voidCMenuTestView:OnDrawDisable()voidCMenuTestView:OnDrawDisable()m_Enable=FALSE;m_Enable=FALSE;void CMenuTestView:OnDrawEnable()void CMenuTestView:OnDrawEnable()m_Enable=TRUE;m_Enable=TRUE;voidCMenuTestView:OnUpdateDrawEnable(CCmdUI*p

13、CmdUI)voidCMenuTestView:OnUpdateDrawEnable(CCmdUI*pCmdUI)pCmdUI-SetCheck(m_Enable?1:0);pCmdUI-SetCheck(m_Enable?1:0);voidCMenuTestView:OnUpdateDrawDisable(CCmdUI*pCmdUI)voidCMenuTestView:OnUpdateDrawDisable(CCmdUI*pCmdUI)pCmdUI-SetCheck(m_Enable?0:1);pCmdUI-SetCheck(m_Enable?0:1);基本知识基本知识1、pCmdUI-En

14、able(true|false);说明:使用户界面对象有效或无效2、pCmdUI-SetCheck(1|0);说明:设置或取消选中用户界面对象3、使用COMMAND消息响应菜单项的选择事件 4、UPDATE_COMMAND_UI消息控制菜使用单项状态 4.2 快捷菜单快捷菜单 学习目标1.实现快捷菜单返回第4章程序的实现步骤程序的实现步骤1、编辑快捷菜单资源2、显示跟踪菜单3、添加菜单响应函数4、实现对话框功能步骤步骤1 编辑快捷菜单资源编辑快捷菜单资源添加菜单添加菜单添加菜单添加菜单(IDR_POPUP_MENU)(IDR_POPUP_MENU)Popup1 Popup1 选中选中选中选中P

15、op-up Pop-up Caption IDCaption ID 编辑矩形坐标编辑矩形坐标编辑矩形坐标编辑矩形坐标 ID_EDIT_RECT ID_EDIT_RECT 编辑椭圆坐标编辑椭圆坐标编辑椭圆坐标编辑椭圆坐标 ID_EDIT_CIRCLE ID_EDIT_CIRCLE 4.24.2步骤步骤2 显示快捷菜单显示快捷菜单添加响应函数Class Name ObjectsIDs MessagesClass Name ObjectsIDs MessagesCMainFrame CMainFrame WM_CONTEXTMENUCMainFrame CMainFrame WM_CONTEXTME

16、NU 4.24.2voidCMainFrame:OnContextMenu(CWnd*pWnd,CPointpoint)voidCMainFrame:OnContextMenu(CWnd*pWnd,CPointpoint)/TODO:Addyourmessagehandlercodehere/TODO:AddyourmessagehandlercodehereCMenumenu;CMenumenu;if(menu.LoadMenu(IDR_POPUP_MENU)if(menu.LoadMenu(IDR_POPUP_MENU)CMenu*pPopup=menu.GetSubMenu(0);CMe

17、nu*pPopup=menu.GetSubMenu(0);pPopup-TrackPopupMenupPopup-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTONTPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);,point.x,point.y,this);步骤步骤2 显示快捷菜单显示快捷菜单4.24.2步骤步骤3 添加菜单消息处理函数添加菜单消息处理函数(1)编辑对话框资源静态文本框,静态文本框,IDC_STATIC,左上角坐标(,左上角坐标(X1,Y1)静态文本框,静态文本框,IDC_STATIC

18、,右下角坐标(,右下角坐标(X2,Y2)编辑框,编辑框,IDC_EDIT_X1编辑框,编辑框,IDC_EDIT_Y1编辑框,编辑框,IDC_EDIT_X2编辑框,编辑框,IDC_EDIT_Y2按扭控件,按扭控件,IDOK,确定,确定按扭控件,按扭控件,IDCANCEL,取消,取消 4.24.2步骤步骤3 添加菜单消息处理函数添加菜单消息处理函数(2)为对话框添加控件关联变量 IDC_EDIT_X1IDC_EDIT_X1,intint,m_nX1m_nX1IDC_EDIT_Y1IDC_EDIT_Y1,intint,m_nY1m_nY1IDC_EDIT_X2IDC_EDIT_X2,intint,m

19、_nX2m_nX2IDC_EDIT_Y2IDC_EDIT_Y2,intint,m_nY2m_nY2(3)在主框架中加入变量并初始化 int m_nRectLeft;int m_nRectLeft;int m_nRectTop;int m_nRectTop;int m_nRectRight;int m_nRectRight;int m_nRectBottom;int m_nRectBottom;int m_nCircleLeft;int m_nCircleLeft;int m_nCircleTop;int m_nCircleTop;int m_nCircleRight;int m_nCircle

20、Right;int m_nCircleBottomint m_nCircleBottom;4.24.2CMainFrame:CMainFrame()CMainFrame:CMainFrame()/TODO:addmemberinitializationcodehere/TODO:addmemberinitializationcodeherem_nRectLeft=50;m_nRectLeft=50;m_nRectTop=50;m_nRectTop=50;m_nRectRight=200;m_nRectRight=200;m_nRectBottom=150;m_nRectBottom=150;m

21、_nCircleLeft=50;m_nCircleLeft=50;m_nCircleTop=50;m_nCircleTop=50;m_nCircleRight=200;m_nCircleRight=200;m_nCircleBottom=150;m_nCircleBottom=150;步骤步骤3 添加菜单消息处理函数添加菜单消息处理函数 4.24.2voidCMenuTestView:OnDrawRect()voidCMenuTestView:OnDrawRect()CMainFrame*pMainFrame=(CMainFrame*)AfxGetApp()-GetMainWnd();CCli

22、entDCdc(this);CClientDCdc(this);dc.Rectangle(pMainFrame-m_nRectLeft,pMainFrame-m_nRectTop,dc.Rectangle(pMainFrame-m_nRectLeft,pMainFrame-m_nRectTop,pMainFrame-m_nRectRight,pMainFrame-m_nRectBottom);pMainFrame-m_nRectRight,pMainFrame-m_nRectBottom);voidCMenuTestView:OnDrawCircle()voidCMenuTestView:On

23、DrawCircle()CMainFrame*pMainFrame=(CMainFrame*)AfxGetApp()-GetMainWnd();CClientDCdc(this);CClientDCdc(this);dc.Ellipse(pMainFrame-m_nCircleLeft,pMainFrame-m_nCircleTop,dc.Ellipse(pMainFrame-m_nCircleLeft,pMainFrame-m_nCircleTop,pMainFrame-m_nCircleRight,pMainFrame-m_nCircleBottom);pMainFrame-m_nCirc

24、leRight,pMainFrame-m_nCircleBottom);步骤步骤3 添加菜单消息处理函数添加菜单消息处理函数(4)修改画图函数4.24.2步骤步骤3 添加菜单消息处理函数添加菜单消息处理函数(5)加入菜单消息处理函数 voidCMenuTestView:OnEditRect()CDlgEditdlg(1);dlg.DoModal();voidCMenuTestView:OnEditCircle()CDlgEditdlg(2);dlg.DoModal();4.24.2步骤步骤4 实现对话框功能实现对话框功能(1)修改构造函数 CDlgEdit:CDlgEdit(inttype,C

25、Wnd*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.24.2步步骤骤4 实实现现对对话话框框功功能能voidCDlgEdit:OnOK()UpdateData(TRUE);CMainFrame*pMainFrame=(CMainFrame*)AfxGetApp()-GetMainWnd();if(m_nType=1)pMainFrame

26、-m_nRectLeft=m_nX1;pMainFrame-m_nRectTop=m_nY1;pMainFrame-m_nRectRight=m_nX2;pMainFrame-m_nRectBottom=m_nY2;elseif(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();4.24.2基本知识基本知识1.1.OnContextMOnCont

27、extMenu()函数 2.2.CMenu类1.1.(1 1)LoadMenuLoadMenu()函数:载入菜单资源()函数:载入菜单资源2.2.(2 2)TrackPopupMenuTrackPopupMenu()函函数数:在在指指定定位位置弹出菜单。置弹出菜单。3.3.AfxGetAppAfxGetApp()()函数4.4.CWinApp 类的GetMainWndGetMainWnd()()函数4.24.2弹出菜单的显示位置弹出菜单的显示位置弹出菜单的显示位置弹出菜单的显示位置说明说明说明说明TPM_CENTERALIGNTPM_CENTERALIGN菜单在屏幕的显示位置,其水平中菜单在屏

28、幕的显示位置,其水平中菜单在屏幕的显示位置,其水平中菜单在屏幕的显示位置,其水平中心位置由心位置由心位置由心位置由X X值决定值决定值决定值决定TPM_LEFTALIGNTPM_LEFTALIGN菜单在屏幕的显示位置,其左侧位菜单在屏幕的显示位置,其左侧位菜单在屏幕的显示位置,其左侧位菜单在屏幕的显示位置,其左侧位置由置由置由置由X X值决定值决定值决定值决定TPM_RIGHTALIGNTPM_RIGHTALIGN菜单在屏幕的显示位置,其右侧位菜单在屏幕的显示位置,其右侧位菜单在屏幕的显示位置,其右侧位菜单在屏幕的显示位置,其右侧位置由置由置由置由X X值决定值决定值决定值决定TPM_LEFT

29、BUTTONTPM_LEFTBUTTON菜单在单击鼠标左键时弹出菜单在单击鼠标左键时弹出菜单在单击鼠标左键时弹出菜单在单击鼠标左键时弹出TPM_RIGHTBUTTONTPM_RIGHTBUTTON菜单在单击鼠标右键时弹出菜单在单击鼠标右键时弹出菜单在单击鼠标右键时弹出菜单在单击鼠标右键时弹出形式参数说明形式参数说明4.3 动态菜单 学习目标1.菜单动态增加与删除2.用户自定义消息3.动态菜单消息响应4.34.3返回第4章程序的实现步骤程序的实现步骤1.1.编辑菜单资源2.2.添加菜单响应函数3.3.加入动态菜单响应函数4.34.3步骤步骤1 编辑菜单资源编辑菜单资源为菜单为菜单(IDR_POP

30、UP_MENU)(IDR_POPUP_MENU)添加两个菜单项:添加两个菜单项:Caption ID1.Seprator1.Seprator2.2.增加椭圆控制菜单增加椭圆控制菜单 ID_ADD_MENU ID_ADD_MENU 3.3.删除椭圆控制菜单删除椭圆控制菜单 ID_DELETE_MENU ID_DELETE_MENU 4.34.3步骤步骤2 添加菜单响应函数添加菜单响应函数1.OnAddMenu1.OnAddMenu()()2.OnDeleteMenu2.OnDeleteMenu()()4.34.3步骤步骤2 添加菜单响应函数添加菜单响应函数4.34.3voidCMainFrame

31、:OnAddMenu()/TODO:AddyourcommandhandlercodehereCStringmenu2;menu0=允许画椭圆;menu1=禁止画椭圆;CWnd*pMainFrame=AfxGetMainWnd();CMenu*pMenuDyna=NULL;CMenu*pMenu=NULL;CMenu*pTopMenu=pMainFrame-GetMenu();intiPos;for(iPos=pTopMenu-GetMenuItemCount()-1;iPos=0;iPos-)pMenu=pTopMenu-GetSubMenu(iPos);if(pMenu&pMenu-Get

32、MenuItemID(0)=ID_DRAW_RECT)pMenuDyna=pMenu;break;for(iPos=pMenuDyna-GetMenuItemCount()-1;iPos=5;iPos-)pMenuDyna-DeleteMenu(iPos,MF_BYPOSITION);for(inti=0;iAppendMenu(MF_STRING,WM_USER+10+i,menui);步骤步骤2 添加菜单响应函数添加菜单响应函数4.34.3voidCMainFrame:OnDeleteMenu()/TODO:AddyourcommandhandlercodehereCWnd*pMainFr

33、ame=AfxGetMainWnd();CMenu*pMenuDyna=NULL;CMenu*pMenu=NULL;CMenu*pTopMenu=pMainFrame-GetMenu();intiPos;for(iPos=pTopMenu-GetMenuItemCount()-1;iPos=0;iPos-)pMenu=pTopMenu-GetSubMenu(iPos);if(pMenu&pMenu-GetMenuItemID(0)=ID_DRAW_RECT)pMenuDyna=pMenu;break;for(iPos=pMenuDyna-GetMenuItemCount()-1;iPos=5;

34、iPos-)pMenuDyna-DeleteMenu(iPos,MF_BYPOSITION);步骤步骤3 添加动态菜单响应函数添加动态菜单响应函数1.1.在类在类CMainFrameCMainFrame中增加一个变量并初始化中增加一个变量并初始化intint m_SelectMenum_SelectMenu;当当m_SelectMenum_SelectMenu为为0 0时,第一项为选中状态,允许画时,第一项为选中状态,允许画椭圆。否则第二项为选中状态,禁止画椭圆。椭圆。否则第二项为选中状态,禁止画椭圆。4.34.3CMainFrame:CMainFrame()/TODO:add member

35、initialization code herem_SelectMenu=0;步骤步骤3 添加动态菜单响应函数添加动态菜单响应函数2.重载主框架类的OnCmdMsg()函数 Project:MenuTestClass Name:CMainFrameObjects IDs:CMainFrameMessages:OnCmdMsg4.34.34.34.3步骤步骤3 添加动态菜单响应函数添加动态菜单响应函数BOOLCMainFrame:OnCmdMsg(UINTnID,intnCode,void*pExtra,AFX_CMDHANDLERINFO*pHandlerInfo)if(pHandlerInf

36、o=NULL)for(inti=0;iSetCheck(1);elsepCmdUI-SetCheck(0);pCmdUI-Enable(true);步骤步骤3 添加动态菜单响应函数添加动态菜单响应函数4.为椭圆菜单项加入UPDATE_COMMAND_UI消息处理函数 4.34.3void CMainFrame:OnUpdateDrawCircle(CCmdUI*pCmdUI)/TODO:Add your command update UI handler code hereif(m_nSelectMenu=0)pCmdUI-Enable(true);elsepCmdUI-Enable(fals

37、e);基本知识基本知识1.1.CWnd 类:GetMenuGetMenu()()函数 2.2.CMenu类1.1.(1 1)GetMenuItemCountGetMenuItemCount()()函数函数2.2.(2 2)GetMenuItemIDGetMenuItemID()()函数函数3.3.(3 3)DeleteMenuDeleteMenu()()函数函数4.4.(4 4)AppendMenuAppendMenu()()函数函数3.3.OnCmdMsg消息4.34.3工工 具具 栏栏 工工 具具 栏栏n n工具栏还具有工具提示功能,当用户将鼠标光标停留在对应工具按钮上几秒钟,工具提示便会

38、出现在工具栏按钮下方的文本框中。n n向工具栏添加按钮向工具栏添加按钮 n n添加工具栏间隔添加工具栏间隔 工工 具具 栏栏n n删除工具栏按钮删除工具栏按钮 n n设置按钮属性设置按钮属性 n n启用和禁用工具栏按钮启用和禁用工具栏按钮 向工具栏添加按钮向工具栏添加按钮n n向工具栏添加按钮,Visual C+中主要体现为绘制工具栏按钮的位图,该位图以BMP文件格式保存。工具栏位图是一系列覆盖工具栏按钮的图形,每个按钮对应一个图形。在默认状态下,每个图形为16像素宽,15像素高。向工具栏添加按钮向工具栏添加按钮添加工具栏间隔添加工具栏间隔 n n工具栏中的按钮从功能上可分为几大类,为了进行区

39、别,往往在不同的类别之间使用间隔符号进行隔离。n n为工具栏添加间隔的方法非常简单,只需选择空白工具栏按钮,并轻轻向右拖动一点,即为工具栏添加了一个间隔。删除工具栏按钮删除工具栏按钮 n nAppWizard自动生成的工具栏按钮,在实际应用程序中可能会显得多余,这时可将其删除。设置按钮属性设置按钮属性 n n工具栏按钮也有自己的属性,其属性在“Toolbar Button Properties”对话框中进行设置,双击对应的工具栏按钮,打开属性对话框。设置按钮属性设置按钮属性n n对话框中各选项的含义如下:n n“ID”“ID”下拉列表框:输入或选择与按钮对应的下拉列表框:输入或选择与按钮对应的

40、IDID号。号。n n“D“D宽宽”文本框:按钮显示的宽度,单位为文本框:按钮显示的宽度,单位为“像像素素”,默认值为,默认值为1616。设置按钮属性设置按钮属性n n“H“H高高”文本框:按钮显示的高度,单位为文本框:按钮显示的高度,单位为“像像素素”,默认值为,默认值为1515。n n“M“M提示提示”文本框:输入的信息会在程序运行时文本框:输入的信息会在程序运行时在状态栏中进行显示。在状态栏中进行显示。n n【例6-8】为【例6-7】中的工具栏按钮编辑属性。(光盘:第6章例6_16_10)启用和禁用工具栏按钮启用和禁用工具栏按钮 n n与菜单项操作一样,用户没有为工具栏按钮写入与菜单项操

41、作一样,用户没有为工具栏按钮写入消息处理函数或者用户自定义按钮未与某个已有消息处理函数或者用户自定义按钮未与某个已有消息处理函数的菜单项对应时,工具栏按钮为灰消息处理函数的菜单项对应时,工具栏按钮为灰色,即禁用状态。色,即禁用状态。n n同样,也可在类中添加一个用户界面处理函数,同样,也可在类中添加一个用户界面处理函数,根据应用程序的某些条件,可有条件地启用和禁根据应用程序的某些条件,可有条件地启用和禁用一个工具栏按钮。用一个工具栏按钮。4.4 工具条 学习目标1.自定义工具条2.2.在工具条中添加控件4.44.4返回第4章程序的实现步骤程序的实现步骤1.1.编辑工具条资源2.2.创建工具条

42、3.3.在工具条上添加控件4.4.加入控件响应函数 4.44.4步骤步骤1 编辑工具条资源编辑工具条资源添加工具条添加工具条(IDR_MYTOOLBAR)(IDR_MYTOOLBAR):4.44.4ID_DRAW_RECTID_DRAW_CIRCLEID_DRAW_LINEID_COMBOBOX工具条含四个工具按扭,其中前两个与菜单“画图”的前两个菜单项的ID号相同,第三个按扭用于画直线,第四个按扭用来显示组合框。步骤步骤步骤步骤2 2 创建工具条创建工具条创建工具条创建工具条1.1.在类在类CmainFrameCmainFrame中定义工具条数据成员中定义工具条数据成员:CToolBarCT

43、oolBar m_wndMyToolBarm_wndMyToolBar;2.2.在类在类CMainFrameCMainFrame的的OnCreateOnCreate函数中加入以下代码函数中加入以下代码 :4.44.4if(!m_wndMyToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndMyToolBar.LoadToolBar(IDR_MYTOOLBAR)TRACE0(Failedtocre

44、atetoolbarn);return-1;/failtocreate.m_wndMyToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndMyToolBar);步骤步骤步骤步骤2 2 创建工具条创建工具条创建工具条创建工具条3.3.添加画线响应函数添加画线响应函数 4.44.4voidCMenuTestView:OnDrawLine()/TODO:AddyourcommandhandlercodehereCClientDCdc(this);dc.MoveTo(20,20

45、);dc.LineTo(200,200);步骤步骤步骤步骤3 3 在工具条上添加控件在工具条上添加控件在工具条上添加控件在工具条上添加控件 1.1.在类在类CMainFrameCMainFrame中定义数据成员中定义数据成员CComboBoxCComboBox m_ComboBoxm_ComboBox;2.2.在在CMainFrameCMainFrame的的OnCreateOnCreate函数中加入代码函数中加入代码 4.44.4CRectrect;m_wndMyToolBar.SetButtonInfo(3,ID_COMBOBOX,TBBS_SEPARATOR,160);m_wndMyToo

46、lBar.GetItemRect(3,&rect);rect.bottom+=100;if(!m_ComboBox.Create(CBS_DROPDOWNLIST|WS_VISIBLE|WS_TABSTOP|CBS_AUTOHSCROLL,rect,&m_wndMyToolBar,ID_COMBOBOX)return-1;m_ComboBox.AddString(FirstItem);m_ComboBox.AddString(SecondItem);m_ComboBox.AddString(ThirdItem);m_ComboBox.SetCurSel(0);步骤步骤4 加入组合框响应函数加入

47、组合框响应函数 1.1.定位到定位到MainFrm.hMainFrm.h中类的定义处,在其中添加消息响应函数中类的定义处,在其中添加消息响应函数的原形:的原形:afx_msgafx_msg void void OnSelchangeComboOnSelchangeCombo();();2.2.定位到定位到MainFrm.cppMainFrm.cpp中消息映射宏的定义处,在其中消息映射宏的定义处,在其中添加中添加ComboBoxComboBox控件的控件的ON_CBNSELCHANGEON_CBNSELCHANGE消消息的映射宏:息的映射宏:ON_CBN_SELCHANGE(ID_COMBOBO

48、X,OnSelchON_CBN_SELCHANGE(ID_COMBOBOX,OnSelchangeComboangeCombo)4.44.4步骤步骤4 加入组合框响应函数加入组合框响应函数 3.3.在在MainFrm.cppMainFrm.cpp中添加消息映射函数体:中添加消息映射函数体:4.44.4voidCMainFrame:OnSelchangeCombo()CStringmess;intCurSel;CurSel=m_ComboBox.GetCurSel();mess=您选择了第;charNo3;itoa(CurSel,No,10);mess+=No;mess+=项!;MessageB

49、ox(mess,消息框,MB_OK|MB_ICONINFORMATION);基本知识基本知识1.1.CToolBar 类:1.1.CreateExCreateEx()()函数函数 2.2.SetButtonInfoSetButtonInfo()()3.3.GetItemRectGetItemRect()()2.2.CComboBox 类1.1.Create()Create()函数函数2.2.AddStringAddString()()函数函数3.3.SetCurSelSetCurSel ()()函数函数3.3.手工添加消息响应函数4.44.43.5 状态条 学习目标1.在状态信息行显示信息 2

50、.2.在状态指示器 显示键盘状态4.54.5返回第4章程序的实现步骤程序的实现步骤1.1.在文件在文件MainFrm.cppMainFrm.cpp中,找到状态条中,找到状态条indicatorsindicators数数组的定义处添加代码组的定义处添加代码 2.2.创建创建CtrlCtrl键和键和ShiftShift键状态指示器的字符串资源键状态指示器的字符串资源 3.3.为状态条添加标识号为状态条添加标识号 4.4.在函数在函数CMainFrame:OnCreateCMainFrame:OnCreate()()函数中,添加函数中,添加状态条的设置代码状态条的设置代码 5.5.显示控制键状态显示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁