VC传统控件的用法
更新时间:2023-10-20 07:13:01 阅读量: 综合文库 文档下载
- vc tab控件的用法推荐度:
- 相关推荐
6.1.1 传统控件的控件通知消息
控件通过向父窗口发送控件通知消息来表明发生了某种事件.例如,当用户在按钮上单击鼠标时,按钮控件会向父窗口发送BN_CLICKED消息.传统控件的通知消息实际上是通过WM_COMMAND消息发给父窗口的(滚动条除外),在该消息的wParam中含有通知消息码(如BN_CLICKED)和控件的ID,在lParam中则包含了控件的句柄.
利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函数,这在上一章中已经演示过了.传统控件的消息映射宏是ON_XXXX,其中XXXX表示通知消息码,如BN_CLICKED.ON_XXXX消息映射如下所示,该宏有两个参数,一个是控件的ID,一个是消息处理函数名.
ON_XXXX(nID, memberFxn)
消息处理函数的声明应该有如下形式:
afx_msg void memberFxn( );
例如,某按钮的BN_CLICKED消息的消息映射及其处理函数的声明如下所示
ON_BN_CLICKED(IDC_ADD,OnAdd)
afx_msg void OnAdd( );
有时为了处理方便,需要把多个ID连续的控件发出的相同消息映射到同一个处理函数上.这就要用到
ON_CONTROL_RANGE宏.ON_CONTROL_RANGE消息映射宏的第一个参数是控件消息码,第二和第三个参数分别指明了一组连续的控件ID中的头一个和最后一个ID,最后一个参数是消息处理函数名。例如,要处理一组单选按钮发出的BN_CLICKED消息,相应的消息映射如下所示:
ON_CONTROL_RANGE(BN_CLICKED, IDC_FIRST, IDC_LAST, OnRadioClicked)
函数OnRadioClicked的声明如下,该函数比上面的OnAdd多了一个参数nID以说明发送通知消息的控件ID.
afx_msg void OnRadioClicked(UINT nID);
ClassWizard不支持ON_CONTROL_RANGE宏,所以需要手工建立消息映射和消息处理函数.
提示:事实上,在使用ClassWizard时只要运用一个小小的技巧,就可以把不同控件的通知消息映射到同一个处理函数上,也可以把一个控件的不同通知消息映射到同一个处理函数上.这个技巧就是在用ClassWizard创建消息处理函数时,指定相同的函数名即可.此方法的优点在于控件的ID不必是连续的,缺点是处理函数没有nID参数,因而不能确定是哪一个控件发送的消息.
6.1.2 静态控件
静态控件包括静态正文(Static Text)和图片控件(Picture)。静态正文控件用来显示正文。图片控件可以显示位图、图标、方框和图元文件,在图片控件中显示图片的好处是不必操心图片的重绘问题。静态控件不能接收用户的输入。在上一章中,读者已经用过静态正文和组框控件。图片控件的例子可以在AppWizard创建的IDD_ABOUTBOX对话框模板中找到,在该模板中有一个图片控件用来显示图标。
静态控件的主要起说明和装饰作用。MFC的CStatic类封装了静态控件。CStatic类的成员函数Create负责创建静态控件,该函数的声明为
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
参数lpszText指定了控件显示的正文。dwStyle指定了静态控件的风格,表6.1显示了静态控件的各种风格,dwStyle可将这些风格组合起来。rect是一个对RECT或CRect结构的引用,用来说明控件的位置和尺寸。pParentWnd指向父窗口,该参数不能为NULL。nID则说明了控件的ID。如果创建成功,该函数返回TRUE,否则返回FALSE.
表6.1 静态控件的风格
控件风格 含义
SS_BLACKFRAME 指定一个具有与窗口边界同色的框(缺省为黑色)。
SS_BLACKRECT 指定一个具有与窗口边界同色的实矩形(缺省为黑色)。
SS_CENTER 使显示的正文居中对齐,正文可以回绕。
SS_GRAYFRAME 指定一个具有与屏幕背景同色的边框。
SS_GRAYRECT 指定一个具有与屏幕背景同色的实矩形。
SS_ICON
SS_LEFT
SS_LEFTNOWORDWRAP
SS_NOPREFIX
SS_NOTIFY
SS_RIGHT
SS_SIMPLE
SS_USERITEM
SS_WHITEFRAME
使控件显示一个在资源中定义的图标,图标的名字有Create函数的lpszText参数指定。 左对齐正文,正文能回绕。 左对齐正文,正文不能回绕。 使静态正文串中的&不是一个热键提示符。 使控件能向父窗口发送鼠标事件消息。 右对齐正文,可以回绕。 使静态正文在运行时不能被改变并使正文显示在单行中。 指定一个用户定义项。 指定一个具有与窗口背景同色的框(缺省为白色)。
SS_WHITERECT 指定一个具有与窗口背景同色的实心矩形(缺省为白色)。
除了上表中的风格外,一般还要为控件指定WS_CHILD和WS_VISIBLE窗口风格。一个典型的静态正文控件的风格为WS_CHILD|WS_VISIBLE|SS_LEFT。
对于用对话框模板编辑器创建的静态控件,可以在控件的属性对话框中指定表6.1中列出的控件风格。例如,可以在静态正文控件的属性对话框中选择Simple,这相当于指定了SS_SIMPLE风格。
Cstatic类主要的成员函数在表6.2中列出。可以利用CWnd类的成员函数GetWindowText,SetWindowText和GetWindowTextLength等函数来查询和设置静态控件中显示的正文.
表6.2 CStatic类的主要成员函数
函数声
明 用途
HBITMAP SetBitmap( HBITMAP hBitmap ); 指定要显示的位图。
HBITMAP GetBitmap( ) const; 获取由SetBitmap指定的位图。
HICON SetIcon( HICON hIcon ); 指定要显示的图标。
HICON GetIcon( ) const; 获取由SetIcon指定的图标。
HCURSOR SetCursor( HCURSOR hCursor ); 指定要显示的光标图片。
HCURSOR GetCursor( ); 获取由SetCursor指定的光标。
HENHMETAFILE SetEnhMetaFile( HENHMETAFILE hMetaFile ); 指定要显示的增强图元文件。
HENHMETAFILE GetEnhMetaFile( ) const; 获取由SetEnhMetaFile指定的图元文件。
静态控件较简单,故这里就不举例说明了。
6.1.3 按钮控件
按钮是指可以响应鼠标点击的小矩形子窗口。按钮控件包括命令按钮(Pushbutton)、检查框(Check Box)、单选按钮(Radio Button)、组框(Group Box)和自绘式按钮(Owner-draw Button)。命令按钮的作用是对用户的鼠标单击作出反应并触发相应的事件,在按钮中既可以显示正文,也可以显示位图。选择框控件可作为一种选择标记,可以有选中、不选中和不确定三种状态。单选按钮控件一般都是成组出现的,具有互斥的性质,即同组单选按钮中只能有一个是被选中的。组框用来将相关的一些控件聚成一组.自绘式按钮是指由程序而不是系统负责重绘的按钮。
按钮主要是指命令按钮、选择框和单选按钮。后二者实际上是一种特殊的按钮,它们有选择和未选择状态。当一个选择框处于选择状态时,在小方框内会出现一个“√”,当单选按钮处于选择状态时,会在圆圈中显示一个黑色实心圆。此外,检查框还有一种不确定状态,这时检查框呈灰色显示,不能接受用户的输入,以表明控件是无效的或无意义的。
按钮控件会向父窗口发出如表6.3所示的控件通知消息。
表6.3 按钮控件的通知消息
消息 含义
BN_CLICKED
用户在按钮上单击了鼠标。
BN_DOUBLECLICKED
正在阅读:
VC传统控件的用法10-20
wy20挖掘机上门服务工作报告06-12
1第一章 原子结构和键合(2h)07-26
2013年4月经济学人文章(英汉双语对照)汇集 - 图文05-24
最新【《草房子》读后感50字】《草房子》读后感作文范文.doc04-11
最新江苏省如皋市搬经镇高明中学八年级第一次月考汗青试题合集04-15
医院检验科的工作计划01-13
室内设计CAD家具尺寸10-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控件
- 用法
- 传统
- 民间祖传“挑羊毛疔”
- 小学语文:第一单元《师恩难忘4》教案(苏教版五年级上)
- 56条考研英语命题规律和技巧、
- 工程开工申请表
- 高血压病中医药健康管理方案
- 计算机网络与通信试题
- 汉语拼音字母表57101604
- 公司部门经理竞聘演讲稿范文
- 放线菌的形态观察
- 2007年全国高考满分作文选登(50篇)
- 银监会令2014年第2号 商业银行流动性风险管理办法(试行)
- 2018年全重点工作目标任务分解一览表 - 图文
- 1习题1土建工程制图
- 2012下半年江苏南京事业单位考试《公共基础知识》真题及解析
- 高校教师岗前培训职业道德单选题接近500个考点汇总(已经整理出答案)
- 《辛亥革命》教学设计及反思
- 延庆区党代会报告
- 《卓有成效的管理者》读书报告
- 常见的、准确率比较高的K线组合
- 典型相关分析