电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

04界面编程2-控制条

21页
  • 卖家[上传人]:大米
  • 文档编号:472173290
  • 上传时间:2022-11-17
  • 文档格式:DOC
  • 文档大小:489.50KB
  • / 21 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章 界面编程2-控制条控制条(control bar,控制栏)包括工具条(tool bar,工具栏)和状态条(status bar,状态栏),它们是构建友好GUI程序的通用界面标准,但并不是Windows API的标准部件,而是由MFC应用程序框架增加的复合控件。工具条是CToolBar类的对象,状态条是CStatusBar类的对象,这两个类都是控制条类CControlBar的派生类,而CControlBar类又是从CWnd类派生的(参见图4-1):CObject CCmdTarget CWnd CControlBar CToolBar / CStatusBar图4-1 控制条的类层次图工具条和状态条都是放置在框架窗口内部的特殊控制条窗口,前者一般位于框架窗口顶部的菜单条之下,后者一般位于框架窗口的底部,它们随其父框架窗口的移动和大小改变而调整自己的长短与位置,参见图4-2 a)。 a)b)图4-2 工具条和状态条在MFC应用程序中,会自动生成工具条和状态条,并可以通过“视图”菜单中的“工具栏”和“状态栏”菜单项,来启用(显示)和禁用(隐藏)工具条和状态条,参见图4-2 b)。由M

      2、FC应用程序框架负责管理控制栏对象的创建与显示,MFC应用程序向导为框架窗口类生成的控制栏代码位于MainFrm.h和MainFrm.cpp文件中。4.1 工具条设计MFC会为应用程序自动生成一个默认的可停靠工具条,包含若干(文件、编辑、打印、关于等)默认菜单项所对应的按钮。工具条设计的主要任务,是在该工具条中添加一些新按钮,以代表新增菜单中的若干常用菜单项,并将这些按钮与对应的菜单项ID关联在一起。当然,我们也可以创建新的工具条,并控制多个工具条的显示、隐藏、切换和停靠等。4.1.1 工具条工具条(tool bar)也叫工具栏,包含若干代表菜单项的图形按钮,是常用菜单项的可视界面。用鼠标单击工具条上的按钮,相当于启用对应的菜单项。1工具条按钮与菜单项工具条由若干可分组的图形按钮组成,一个工具条上所有按钮的图像属于同一个横条状位图,存储在同一个16色(4位)位图资源文件(*.bmp)中。每一个按钮按顺序对应于位图中的一个16像素宽15像素高的位图片断。应用程序框架会在工具条显示时,为每个按钮提供一个边框,并通过改变其边框和按钮图片的颜色,来表示按钮的按下和正常(松开)状态。不过,按钮的

      3、分组,完全由程序代码决定,而与该位图资源无关。在应用程序中单击一个按钮后,会像菜单项和快捷键一样发送一个命令消息(一般对应于一个菜单项消息)。可以自己响应UI消息来改变按钮状态和图形,不过很少需要这样做。工具条只是常用菜单的可视界面,工具条上的按钮也只不过是对应菜单项的图示代表。程序员并不需要编写任何额外的独立代码,所需的工作就是绘制按钮的图形和关联对应的菜单项ID,其他的所有工作都由菜单项的相关属性和功能来完成,包括响应代码、提示信息、启用/禁用、被按下(对应于菜单项的被选中)等。2工具条的停靠工具条的自由停靠(docking)是指,用户可以通过用鼠标拖放位于工具条头部的钳夹(gripper)来将工具条放置到框架窗口客户区的任意位置,包括靠在客户区的顶(默认)、底、左、右和悬浮在客户区的中间,参见图4-3。从MFC 4.0 开始,工具条由Windows提供的工具栏通用控件来建立,是完全可停靠的,因此工具条也称为工具栏。由MFC应用程序向导自动生成的工具条默认是可停靠的。 图4-3 可停靠工具条3默认工具条默认工具条包含“新建”、“打开”、“保存”,“剪切”、“复制”、“粘贴”,“打印

      4、”,“关于”等3组8个图形按钮,它们的图像位于同一个位图文件(resToolbar.bmp)中,参见图4-4。图4-4 默认工具条及其位图MFC应用程序向导生成的默认工具条资源脚本为(位于资源文件Student.rc中):IDR_MAINFRAME TOOLBAR 16, 15BEGIN BUTTON ID_FILE_NEW BUTTON ID_FILE_OPEN BUTTON ID_FILE_SAVESEPARATOR BUTTON ID_EDIT_CUT BUTTON ID_EDIT_COPY BUTTON ID_EDIT_PASTESEPARATOR BUTTON ID_FILE_PRINT BUTTON ID_APP_ABOUTEND其中,IDR_MAINFRAME为工具条资源ID(同默认菜单条的)、TOOLBAR为关键字、16和15为每个按钮图像块的宽和高(以像素为单位)、BUTTON(按钮)为关键字、ID_为按钮所对应的菜单项ID、SEPARATOR(分隔符)用于按钮分组。不过一般并不需要手工修改这些脚本,而是由VC提供的工具栏编辑器来代劳。4.1.2 编辑工具条我们仍以S

      5、tudent程序为例,说明如何向工具条中添加按钮和设置属性(本小节),以及如何添加和管理新的工具条(下一小节)。1操作步骤下面是利用VS的工具栏编辑器窗口和对应的属性窗口等,来修改默认的工具条(资源标识为IDR_MAINFRAME)的若干操作步骤:l 打开工具栏编辑器在VC项目工作区的“资源视图”页中展开“StudentStudent.rc”中的“Toolbar”资源列表,双击“IDR_MAINFRAME”项,打开工具栏编辑器,参见图4-5中部。图4-5 工具栏编辑器注意,由于VC08功能包在其自动生成的默认工具条中,将按钮图像的高从原来的15像素改成了16像素,所以在打开VC08功能包的工具栏编辑器时,会弹出如图4-6所示调整位图大小的确认对话框,需按“确定”钮才能打开工具栏编辑器。图4-6 调整工具条位图大小的确认对话框l 选择当前按钮单击位于工具条编辑窗口上部的(默认)工具条栏中的所需按钮。l 添加按钮将工具条最右边的空白按钮拖到你想加入按钮的位置。l 绘制位图可以利用“图像”菜单(参见3.2.5小节的图3-18)、图像编辑器工具条(参见3.2.5小节的图3-19)和(一般位于属

      6、性窗口上部的)“颜色”窗口中的调色板,在中部的图像编辑器窗口中绘制和修改当前按钮的位图。(在空白按钮上绘图后,VS会自动在其右边添加一个新的空白按钮)。l 修改属性在工具栏编辑器属性窗口中可以(重点是设置关键属性ID):n 键入或选择该按钮所对应的ID(应该是已有的菜单项ID)。n 修改该按钮位图的宽和高(一般不修改)。n 键入和修改该按钮所对应的提示文本(n后的为按钮的浮动提示文本)(一般在菜单项的提示串中已经包含)。l 分组按钮左/右拖动按钮半个按钮宽度,可将其:n 与右边/左边的按钮分开成不同的组。n 与左边/右边的按钮合并成同一个组。l 删除按钮将按钮拖离工具条即可。2步骤框图图4-7是在已有工具条资源中添加新按钮的基本步骤框图(粗体字为重点部分):打开工具条资源打开资源视图展开Toolbar项双击工具条ID添加按钮选中右端空白按钮拖放到所需位置绘制图案利用图像编辑器条上的工具绘制图形或从他处粘贴图片设置属性打开属性窗口选择对应菜单项ID输入提示串分组按钮左/右拖动按钮半个按钮宽度删除按钮将按钮拖离工具条图4-7 工具条编辑的主要步骤3添加字符图案按钮例如,在Student程序

      7、的工具条中,在问号按钮前加入分别用“Z”与“L”字符图案表示的“张三”菜单项(ID_ NAME_ZS)与“李四”菜单项(ID_ NAME_LS)按钮,参见图4-8。按钮上的字符图案可以利用图像菜单或图像编辑器工具条中的文本工具进行绘制,参见图4-9。 图4-8 按钮的添加(左)和显示(右)图4-9 文本工具对话框(左)及其字体对话框(右)4.1.3 添加新工具条如果1)原有的工具条不够用,需要加入第2个工具条;2)或者在程序运行当中需要在多个工具条中进行切换;则需要创建新的工具条,并且编写代码将它装入框架窗口。1步骤框图添加新工具条的工作要比在修改默认工具条复杂许多,需要添加工具条资源、添加若干按钮、编写相关代码等等,参见图4-10(粗体为重点部分)。添加工具条资源打开资源视图选中Toolbar项按鼠标右键弹出浮动菜单添加按钮定义工具条对象在CMainFrame类中定义工具条类CToolBar的对象创建并装入工具条在CMainFrame类的OnCreate函数中调用CToolBar类的CreateEx和LoadToolBar函数来创建和装入新工具条选中“插入Toolbar”菜单项双击对

      8、应ID在属性窗口中修改ID绘制图案选择对应菜单项ID停靠工具条在CMainFrame类的OnCreate函数中调用CToolBar类的EnableDocking函数和框架窗口类的DockControlBar函数来停靠工具条图4-10 添加新工具条的主要步骤图2创建工具条资源l 在项目工作区的“资源视图”页中的Toolbar资源表项上单击鼠标右键,在弹出的浮动菜单中选“插入Toolbar”菜单项,VS会自动创建一个ID为IDR_TOOLBAR1的空工具条。l 可在该工具条中加入若干图形按钮(如“姓名”和“成绩”菜单中各菜单项项所对应的按钮),参见图4-11。l 在属性窗口中修改工具条的ID(如IDR_MYTB),选择按钮对应的菜单项ID(如ID_NAME_WW)。图4-11 添加新工具条3创建和装入工具条针对前面所讲的两种情况,分别采用下列不同的方法来装入工具条:1)在框架窗口中加入多个工具条:l 创建新工具条资源。l 打开头文件MainFrm.h,在CMainFrame类中加入工具条类CToolBar的对象m_ToolBar作为公共数据成员:public:CToolBar m_Tool

      9、Bar;l 在CMainFrame类的原有OnCreate函数内加入创建与装入工具条的代码,但要注意代码的顺序,且不需重复语句EnableDocking(CBRS_ALIGN_ANY);,参见下面代码的粗体部分(其余部分为自动生成的默认代码),注意对比二者中对应的斜体部分:int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) |!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(未能创建工具栏n);return -1; / 未能创建/ 创建并装入新工具条if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE

      《04界面编程2-控制条》由会员大米分享,可在线阅读,更多相关《04界面编程2-控制条》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.