ch5 菜单 工具栏和状态栏

上传人:沈*** 文档编号:245176827 上传时间:2024-10-07 格式:PPT 页数:21 大小:543KB
返回 下载 相关 举报
ch5 菜单 工具栏和状态栏_第1页
第1页 / 共21页
ch5 菜单 工具栏和状态栏_第2页
第2页 / 共21页
ch5 菜单 工具栏和状态栏_第3页
第3页 / 共21页
点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,第,5,章,菜单 工具栏和状态栏,授课教师:沈峰,目录,Click to add Title,Click to add Title,Click to add Title,Click to add Title,4.1,颜色科学,5.1,资源与资源编辑器,Windows,资源用于,创建程序的框架界面,,包括,快捷键,(Accelerator),、位图,(Bitmap),、光标,(Cursor),、对话框,(Dialog),、图标,(Icon),、,菜单,(Menu),、串表,(String Table),、,工具栏,(Toolbar),和版本信息,(Version),等,为此,,Windows,资源提供了各种类型的资源编辑器。,资源作为一种,界面元素,,可以从中获取信息并在其中执行某些操作。,Visual C+,在内部使用,资源符号,来标识资源。每当创建一个新的资源或资源对象时,系统就会为其提供一个默认的资源符号名称并赋予一个整数值,该定义被保存在,resource.h,文件中,。,资源编辑器,在,Windows,环境下,,资源是独立于程序源代码的,,根据不同资源的特点,,Visual C+,提供了,不同的可视化资源编辑器,。创建或打开资源时,系统将自动打开相应的编辑器。,1.,创建资源,单击,Insert,菜单中,Resource,菜单项创建新的资源。如图所示。,5.2,菜单的使用,菜单的类型,3,种:主菜单、弹出菜单和快捷菜单。,编辑菜单:双击,ResourceView,视图中的,Menu,菜单资源,即可打开菜单编辑器,如图所示。对菜单可进行插入、删除、修改属性等操作。,建立菜单项消息映射,菜单的有效控制,1,在,CMainFrame,类中添加类型为,BOOL,,属性为,public,的成员变量,需要操作的菜单项有几个,就添加几个这样的变量。并在,CMainFrame,类构造函数中初始化为,false.,CMainFrame:CMainFrame,(),/TODO:add member initialization code here,this-,m_open,=true;,this-,m_close,=false;,2,为每个需要操作的菜单项添加,UPDATE_COMMAND_UI,消息处理函数,.,示例操作界面如下:,消息处理函数代码:,pCmdUI,-,Enable(this,-,m_open,);,3,在菜单项,Command,消息处理函数中更新变量值,void CEx5_2View:OnTimerOpen(),:,SetTimer(this,-m_hWnd,1,1000,NULL);,CMainFrame,*p=(,CMainFrame,*),AfxGetMainWnd,();,p-,m_open,=false;,p-,m_close,=true;,在包含此函数的,CPP,文件头处添加如下语句:,#include,mainfrm.h,“,否则,提示找不到,CMainFrame,类型,示例运行效果图,有效性控制的另一个常用命令是:,pCmdUI,-,SetCheck(BOOL,b),使用方法与,pCmdUI,-,Enable(BOOL,b),相似。,使用快捷菜单,参考,P111,例,5.6,步骤,void,CMainFrame:OnContextMenu(CWnd,*,pWnd,CPoint,point),/TODO:Add your message handler code here,CMenu,menu;,/,加载,menu.LoadMenu(IDR_POPUP,);,/,显示,menu.GetSubMenu(0)-,TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this,);,5.3,工具栏的使用,系统会自动创建一个工具栏,用户可以修改它去掉不需要的按钮,加入自己需要的按钮。,5.3.1,编辑工具栏,使用工具栏编辑器来编辑工具栏资源。双击,ResourceView,视图中的,Toolbar,工具栏资源,即可打开工具栏编辑器。,2.,删除按钮,将按钮拖出工具栏外,即可删除该按钮。,3.,编辑按钮位图,设置按钮位图有以下两种方法。,利用绘图工具与调色板直接进行绘制。,先利用专用绘图软件制作,然后粘贴到按钮上。,5.3.2,建立消息映射,通常只需要让一个按钮的,ID,值与同样功能的菜单项,ID,值相同即可,(,鼠标双击对应图标,打开属性对话框,),。如果按钮没有对应的菜单项,则需要通过,ClassWizard,类向导添加一个消息处理函数。,5.3.3,自定义工具栏的操作,向导生成的标准工具栏的,ID,值为,IDR_MAINFRAME,。对一些功能复杂的应用程序,需要创建多个不同的工具栏。要生成工具栏,首先必须添加工具栏资源,然后参照,MFC,应用程序框架添加工具栏的方法,构造一个,CToolBar,类的对象,调用,CToolBar:Create,(),或,CreateEx,(),函数创建工具栏窗口,最后调用,CToolBar:LoadToolBar,(),函数载入工具栏资源。除这些基本步骤之外,还可以调用其他相关函数从而进一步改善工具栏,自定义工具栏的使用方法参考,P123,例,5.10,int,CMainFrame:OnCreate(LPCREATESTRUCT,lpCreateStruct,),.,if(!,m_wndToolBar1,.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP,|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|,!,m_wndToolBar1,.LoadToolBar(,IDR_TOOLBAR1,),TRACE0(Failed to create toolbarn);,return-1;/fail to create,m_wndToolBar1,.EnableDocking(CBRS_ALIGN_ANY);,/,EnableDocking(CBRS_ALIGN_ANY,);,DockControlBar(&,m_wndToolBar1,);,return 0;,/,以上代码是参考此函数中已经存在的代码基础上进行添加的。,5.4,状态栏的使用,参考,P126,例,5.11,1,打开,mainFrm.cpp,,修改代码如下:,static UINT indicators=,ID_SEPARATOR,/status line indicator,ID_INDICATOR_COORD,/,注意在此数组中的下标,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;,2,打开资源视图,打开串表编辑器,添加,ID_INDICATOR_COORD,,,格式设为:,x:xxx,y:xxxx,3,添加鼠标移动消息处理函数,void CEx5_2View:OnMouseMove(UINT,nFlags,CPoint,point),CMainFrame,*,pM,=(,CMainFrame,*),AfxGetMainWnd,();,CStatusBar,*,pSB,=&,pM,-,m_wndStatusBar,;,CString,str,;,str.Format(x:%d,y:%d,point.x,point.y,);,pSB,-SetPaneText(1,str);,CView:OnMouseMove(nFlags,point);,(,注意需要:,#include“,MainFrm.h,”,另外把,MainFrm.h,文件中的,m_wndStatusBar,改为,public,属性,),Thank You!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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