




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物医疗技术投资与支持合同
- 服务专卖店劳动合同书
- 企业宽带租赁合同
- 专利技术咨询合同
- 建设工程居间费合同
- 股权对外转让合同
- 消防通风承包合同
- 汽车销售维修服务合同
- 04 8 列夫·托尔斯泰2024-2025学年八年级语文上册同步教学设计(河北专版)
- 甘肃畜牧工程职业技术学院《工程测试技术》2023-2024学年第二学期期末试卷
- 主语从句趣味课件
- 小学生品德发展与道德教育PPT完整全套教学课件
- 汽车修理厂维修结算清单
- 《计算机应用基础》教学教案-02文字录入技术
- 2023年1月浙江省高考英语真题及详细解析
- 2023年大疆科技行业发展概况分析及未来五年行业数据趋势预测
- 乡镇卫生院院感知识培训
- 中国航天日扬帆起航逐梦九天(课件)-小学主题班会通用版
- 老年医学概论智慧树知到答案章节测试2023年浙江大学
- 幼儿园食堂生鲜进货记录表
- nasm cpt考试试题及答案
评论
0/150
提交评论