ch5菜单工具栏和状态栏.ppt_第1页
ch5菜单工具栏和状态栏.ppt_第2页
ch5菜单工具栏和状态栏.ppt_第3页
ch5菜单工具栏和状态栏.ppt_第4页
ch5菜单工具栏和状态栏.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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( /以上代码是参考此函数中已经存在的代码基础上进行添加的。,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 po

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论