电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

04界面编程2-控制条

  • 资源ID:472173290       资源大小:489.50KB        全文页数:21页
  • 资源格式: DOC        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

04界面编程2-控制条

第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)。由MFC应用程序框架负责管理控制栏对象的创建与显示,MFC应用程序向导为框架窗口类生成的控制栏代码位于MainFrm.h和MainFrm.cpp文件中。4.1 工具条设计MFC会为应用程序自动生成一个默认的可停靠工具条,包含若干(文件、编辑、打印、关于等)默认菜单项所对应的按钮。工具条设计的主要任务,是在该工具条中添加一些新按钮,以代表新增菜单中的若干常用菜单项,并将这些按钮与对应的菜单项ID关联在一起。当然,我们也可以创建新的工具条,并控制多个工具条的显示、隐藏、切换和停靠等。4.1.1 工具条工具条(tool bar)也叫工具栏,包含若干代表菜单项的图形按钮,是常用菜单项的可视界面。用鼠标单击工具条上的按钮,相当于启用对应的菜单项。1工具条按钮与菜单项工具条由若干可分组的图形按钮组成,一个工具条上所有按钮的图像属于同一个横条状位图,存储在同一个16色(4位)位图资源文件(*.bmp)中。每一个按钮按顺序对应于位图中的一个16像素宽×15像素高的位图片断。应用程序框架会在工具条显示时,为每个按钮提供一个边框,并通过改变其边框和按钮图片的颜色,来表示按钮的按下和正常(松开)状态。不过,按钮的分组,完全由程序代码决定,而与该位图资源无关。在应用程序中单击一个按钮后,会像菜单项和快捷键一样发送一个命令消息(一般对应于一个菜单项消息)。可以自己响应UI消息来改变按钮状态和图形,不过很少需要这样做。工具条只是常用菜单的可视界面,工具条上的按钮也只不过是对应菜单项的图示代表。程序员并不需要编写任何额外的独立代码,所需的工作就是绘制按钮的图形和关联对应的菜单项ID,其他的所有工作都由菜单项的相关属性和功能来完成,包括响应代码、提示信息、启用/禁用、被按下(对应于菜单项的被选中)等。2工具条的停靠工具条的自由停靠(docking)是指,用户可以通过用鼠标拖放位于工具条头部的钳夹(gripper)来将工具条放置到框架窗口客户区的任意位置,包括靠在客户区的顶(默认)、底、左、右和悬浮在客户区的中间,参见图4-3。从MFC 4.0 开始,工具条由Windows提供的工具栏通用控件来建立,是完全可停靠的,因此工具条也称为工具栏。由MFC应用程序向导自动生成的工具条默认是可停靠的。 图4-3 可停靠工具条3默认工具条默认工具条包含“新建”、“打开”、“保存”,“剪切”、“复制”、“粘贴”,“打印”,“关于”等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 编辑工具条我们仍以Student程序为例,说明如何向工具条中添加按钮和设置属性(本小节),以及如何添加和管理新的工具条(下一小节)。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)和(一般位于属性窗口上部的)“颜色”窗口中的调色板,在中部的图像编辑器窗口中绘制和修改当前按钮的位图。(在空白按钮上绘图后,VS会自动在其右边添加一个新的空白按钮)。l 修改属性在工具栏编辑器属性窗口中可以(重点是设置关键属性ID):n 键入或选择该按钮所对应的ID(应该是已有的菜单项ID)。n 修改该按钮位图的宽和高(一般不修改)。n 键入和修改该按钮所对应的提示文本(n后的为按钮的浮动提示文本)(一般在菜单项的提示串中已经包含)。l 分组按钮左/右拖动按钮半个按钮宽度,可将其:n 与右边/左边的按钮分开成不同的组。n 与左边/右边的按钮合并成同一个组。l 删除按钮将按钮拖离工具条即可。2步骤框图图4-7是在已有工具条资源中添加新按钮的基本步骤框图(粗体字为重点部分):打开工具条资源打开资源视图展开Toolbar项双击工具条ID添加按钮选中右端空白按钮拖放到所需位置绘制图案利用图像编辑器条上的工具绘制图形或从他处粘贴图片设置属性打开属性窗口选择对应菜单项ID输入提示串分组按钮左/右拖动按钮半个按钮宽度删除按钮将按钮拖离工具条图4-7 工具条编辑的主要步骤3添加字符图案按钮例如,在Student程序的工具条中,在问号按钮前加入分别用“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”菜单项双击对应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_ToolBar;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-控制条)为本站会员(大米)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.