下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VC技巧四 - 工具条和状态条增强型的状态条 首先在你的应用中添加一个新类,这个类的基类是CStatusBar类。本文中这个类叫做CEnhanceStatusBar。在头文件中声明以下的控件ID和标志:#define IDC_PROGRESS 3001 /进程条#define IDC_INFOBUTTON 3002 /Info按钮#define IDC_LEFTBUTTON 3003 /左移按钮#define IDC_RIGHTBUTTON 3004 /右移按钮#define ENHANCEBAR_PROGRESS 1 /进程条标志#define ENHANCEBAR_INFO 2 /Info
2、按钮标志#define ENHANCEBAR_BUTTON 4 /左、右移按钮标志将下列成员函数和成员变量添加到CEnhanceStatusBar类中,并且根据你的需要设置其属性为public/protected/private:CBitmapButton LeftButton; /左移按钮CBitmapButton RightButton; /右移按钮CBitmapButton InfoButton; /Info按钮CProgressCtrl ProgressControl; /进程条/下面的四个成员函数返回各个控件:CBitmapButton& GetLeftButton() re
3、turn LeftButton;CBitmapButton& GetRightButton() return RightButton;CBitmapButton& GetInfoButton() return InfoButton;CProgressCtrl& GetProgressControl() return ProgressControl;UINT ButtonWidth; /按钮宽度UINT ButtonHeight; /按钮高度UINT ButtonSpace; /按钮间距int StatusFlags; /状态条标志int ProgressPane; /进
4、程条所在的pane标号int ButtonPane; /按钮所在的pane标号BOOL Create(CWnd* wnd, int flags, int progress, int button);/状态条生成函数virtual BOOL AddButtonControl(); /添加按钮控件virtual BOOL AddProgressControl(); /添加进程条控件virtual void PositionControls(); /调整控件位置virtual void DestroyControls(); /删除控件/下面是为了测试按钮及进程条控件而添加的一些函数及变量CStrin
5、gList Messages; /一组CString,用于存贮讯息POSITION CurrentMessagePosition; /当前讯息在List中的位置virtual BOOL AddMessage(CString msg, int pos); /加入一条讯息virtual BOOL ClearMessages(); /删除所有讯息virtual void SetProgress(BOOL show, int range); /设置进程条编写构造函数和析构函数,并给Create()函数加入代码:CEnhanceStatusBar:CEnhanceStatusBar() /初始化参数 B
6、uttonWidth = 14; ButtonHeight = 13; ButtonSpace = 3; CurrentMessagePosition = 0; StatusFlags = 0; ProgressPane = 0; ButtonPane = 0;CEnhanceStatusBar:CEnhanceStatusBar() ClearMessages();/删除所有讯息 DestroyControls();/删除控件BOOL CEnhanceStatusBar:Create(CWnd* wnd, int flags, int progress, int button) if (m_
7、hWnd =0) if (!CStatusBar:Create(wnd) return FALSE; ClearMessages(); DestroyControls();/在通过菜单命令改变状态条格式时,这个调用很重要, /因为各控件只能生成一次,所以必须先删除 /得到标志和pane号 StatusFlags = flags;/flags标志状态条的格式,有无进程条和某些按钮等。 ProgressPane = progress;/progress表示状态条所在的pane号 ButtonPane = button;/button表示按钮所在的pane号 if (!AddProgressCont
8、rol()/加入进程条 return FALSE; if (!AddButtonControl()/加入按钮 return FALSE; /加入你自己的控件 /if (!AddCustomControl() / return FALSE; /加入你自己的控件 EnableToolTips(TRUE); PositionControls();/调整控件位置 /调整你自己的控件的位置 /PositionCustomControl(); /调整你自己的控件的位置 return TRUE;给AddButtonControl()、AddProgressControl()和DestroyControls(
9、)函数加入代码:BOOL CEnhanceStatusBar:AddButtonControl() /设置ButtonRect CRect ButtonRect; ButtonRect.left = 100; ButtonRect.top = 2; ButtonRect.right = 114; ButtonRect.bottom = 15; /下面加入左移和右移按钮 if (StatusFlags & ENHANCEBAR_BUTTON) if (!LeftButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, But
10、tonRect,this, IDC_LEFTBUTTON) TRACE0("Failed to create LeftButton buttonn"); return FALSE; if (!LeftButton.LoadBitmaps(IDB_LEFTBUTTON,IDB_LEFTBUTTON_SEL,NULL, IDB_LEFTBUTTON_DIS) TRACE0("Failed to load LeftButton bitmapn"); return FALSE; LeftButton.EnableWindow(FALSE); if(!RightB
11、utton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, ButtonRect,this,IDC_RIGHTBUTTON) TRACE0("Failed to create RightButton buttonn"); return FALSE; if (!RightButton.LoadBitmaps(IDB_RIGHTBUTTON,IDB_RIGHTBUTTON_SEL, NULL,IDB_RIGHTBUTTON_DIS) TRACE0("Failed to load RightButton bit
12、mapn"); return FALSE; RightButton.EnableWindow(FALSE); /下面加入Info按钮 if (StatusFlags & ENHANCEBAR_INFO) if (!InfoButton.Create("",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, ButtonRect,this,IDC_INFOBUTTON) TRACE0("Failed to create InfoButtonn"); return FALSE; if (!InfoButton.LoadBitmaps(IDB_INFO,IDB_INFO_SEL,NULL,IDB_INFO_DIS) TRACE0("Failed to load InfoButton bitmapn"); return FALSE; InfoButt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州黔南州三都县中国移动公司招聘14人备考题库带答案详解(考试直接用)
- 2026浙江省财开集团有限公司社会招聘备考题库及一套参考答案详解
- 2026年低功耗智能计算项目可行性研究报告
- 2026江西省抚州市直属学校招聘硕士研究生60人备考题库附答案详解(研优卷)
- 2026年卫星健康监控系统项目可行性研究报告
- 2026江苏淮安淮阴工学院招聘工作人员120人备考题库附答案详解(满分必刷)
- 2026浙江杭州市西湖区西庐幼儿园招聘幼儿教师1人备考题库(非事业)附答案详解(能力提升)
- 2026河南省科学院激光制造研究所招聘20人备考题库附答案详解(夺分金卷)
- 2026河南南阳市书院高中教师招聘4人备考题库带答案详解(巩固)
- 2026湖南常德市柳叶湖旅游度假区开发公益性岗位备考题库及答案详解(基础+提升)
- 2026届大湾区普通高中毕业年级联合模拟考试(一)数学试题(原卷版+解析版)
- 体育设施维护与管理手册(标准版)
- 航天器电源系统:星际探索的能量核心与技术标杆
- 2025年西藏中考语文试卷及答案
- 博士组合物使用指南
- 《相变储热供暖工程技术标准》
- 集装箱安全装运集装箱系固
- 2023年西安电力高等专科学校单招考试面试题库及答案解析
- 人教版数学八年级下册《二次根式》单元测试题(含答案)
评论
0/150
提交评论