ch菜单工具栏和状态栏实用实用教案_第1页
ch菜单工具栏和状态栏实用实用教案_第2页
ch菜单工具栏和状态栏实用实用教案_第3页
ch菜单工具栏和状态栏实用实用教案_第4页
ch菜单工具栏和状态栏实用实用教案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、5.1 资源(zyun)与资源(zyun)编辑器 Windows资源用于创建程序的框架界面,包括快捷键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version)等,为此,Windows资源提供了各种类型的资源编辑器。 资源作为一种界面元素,可以从中获取信息并在其中执行某些操作。Visual C+在内部使用资源符号来标识资源。每当创建一个新的资源或资源对象时,系统就会为其提供一个默认(mrn)的资源符号名称并赋予一个整数值,该定义被保存在

2、resource.h文件中。第1页/共20页第一页,共21页。资源(zyun)编辑器 在Windows环境下,资源是独立于程序源代码的,根据不同资源的特点,Visual C+提供了不同的可视化资源编辑器。创建或打开资源时,系统将自动(zdng)打开相应的编辑器。 1.创建资源 单击Insert菜单中Resource菜单项创建新的资源。如图所示。 第2页/共20页第二页,共21页。5.2 菜单(ci dn)的使用 菜单的类型3种:主菜单、弹出菜单和快捷菜单。 编辑菜单:双击ResourceView视图中的Menu菜单资源,即可打开菜单编辑器,如图所示。对菜单可进行插入(ch r)、删除、修改属性

3、等操作。 第3页/共20页第三页,共21页。建立(jinl)菜单项消息映射第4页/共20页第四页,共21页。菜单(ci dn)的有效控制 1 在CMainFrame类中添加(tin ji)类型为BOOL,属性为public的成员变量,需要操作的菜单项有几个,就添加(tin ji)几个这样的变量。并在CMainFrame类构造函数中初始化为false. CMainFrame:CMainFrame() / TODO: add member initialization code herethis-m_open = true;this-m_close = false; 第5页/共20页第五页,共21

4、页。 2 为每个需要(xyo)操作的菜单项添加UPDATE_COMMAND_UI消息处理函数.示例操作界面如下:消息消息(xio xi)处理函数代码:处理函数代码:pCmdUI-Enable(this-m_open);第6页/共20页第六页,共21页。 3 在菜单项Command消息(xio xi)处理函数中更新变量值void CEx5_2View:OnTimerOpen() void CEx5_2View:OnTimerOpen() :SetTimer(this-m_hWnd,1,1000,NULL); :SetTimer(this-m_hWnd,1,1000,NULL); CMainFra

5、me CMainFrame * *p=(CMainFrame p=(CMainFrame * *)AfxGetMainWnd();)AfxGetMainWnd();p-m_open = false;p-m_open = false;p-m_close = true;p-m_close = true; 在包含在包含(bohn)(bohn)此函数的此函数的CPPCPP文件头处添加如下文件头处添加如下语句:语句:#include mainfrm.h“#include mainfrm.h“否则,提示找不到否则,提示找不到CMainFrame CMainFrame 类型类型第7页/共20页第七页,共21

6、页。 示例(shl)运行效果图有效性控制的另一个有效性控制的另一个(y )(y )常用命令是:常用命令是:pCmdUI-SetCheck(BOOL b),pCmdUI-SetCheck(BOOL b),使用方法与使用方法与pCmdUI-Enable(BOOL b)pCmdUI-Enable(BOOL b)相似。相似。第8页/共20页第八页,共21页。使用快捷(kui ji)菜单 参考(cnko)P111 例5.6步骤第9页/共20页第九页,共21页。 void CMainFrame:OnContextMenu(CWnd* pWnd, CPoint point) / TODO: Add your

7、 message handler code hereCMenu menu;/加载menu.LoadMenu(IDR_POPUP);/显示(xinsh) menu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); 第10页/共20页第十页,共21页。5.3 工具栏的使用(shyng) 系统会自动创建一个(y )工具栏,用户可以修改它去掉不需要的按钮,加入自己需要的按钮。 5.3.1 编辑工具栏 使用工具栏编辑器来编辑工具栏资源。双击ResourceView视图中的Toolbar工具栏

8、资源,即可打开工具栏编辑器。 第11页/共20页第十一页,共21页。2.删除按钮 将按钮拖出工具栏外,即可删除该按钮。3.编辑按钮位图设置按钮位图有以下两种方法。 利用绘图工具与调色板直接进行绘制(huzh)。 先利用专用绘图软件制作,然后粘贴到按钮上。第12页/共20页第十二页,共21页。 5.3.2 建立消息映射 通常只需要让一个按钮的ID值与同样功能的菜单项ID值相同即可(鼠标双击对应图标,打开(d ki)属性对话框)。如果按钮没有对应的菜单项,则需要通过ClassWizard类向导添加一个消息处理函数。第13页/共20页第十三页,共21页。 5.3.3自定义工具栏的操作 向导生成的标准

9、工具栏的ID值为IDR_MAINFRAME。对一些功能复杂的应用程序,需要创建多个不同的工具栏。要生成工具栏,首先必须添加工具栏资源,然后参照MFC应用程序框架添加工具栏的方法,构造一个CToolBar类的对象,调用CToolBar:Create( )或CreateEx( )函数创建工具栏窗口,最后调用CToolBar:LoadToolBar( )函数载入工具栏资源。除这些基本步骤(bzhu)之外,还可以调用其他相关函数从而进一步改善工具栏第14页/共20页第十四页,共21页。 自定义工具栏的使用方法(fngf)参考P123 例5.10第15页/共20页第十五页,共21页。 int CMain

10、Frame: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 createm_wnd

11、ToolBar1.EnableDocking(CBRS_ALIGN_ANY); /EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar1);return 0; /以上代码是参考此函数中已经存在的代码基础( jch)上进行添加的。第16页/共20页第十六页,共21页。5.4 状态栏的使用(shyng) 参考P126 例5.11 1 打开mainFrm.cpp,修改(xigi)代码如下: static UINT indicators = ID_SEPARATOR, / status line indicator ID_INDI

12、CATOR_COORD, /注意在此数组中的下标ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL, ;第17页/共20页第十七页,共21页。 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); (注意(zh y)需要:#include “MainFrm.h”,另外把MainFrm.h 文件中的m_wndStatusBar改为public属性)第18页/共20页第十八页,共21页。第19页/共20页第十九页,共21页。感谢您的欣赏(xnshng)!

温馨提示

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

评论

0/150

提交评论