示树状结构数据 CTreeCtrl
选项卡控件(TabCtrl) 主要用来显示多种重叠的相关对话框界面 CTabCtrl
5.1 静态文本(Static text)控件
静态文本控件是传统控件的一种,传统控件主要包括文本控件、命令按钮、选择框、单
选按钮、编辑框、列表框和组合框等,如图5-1 所示。
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·100·
图5-1 主要传统控件样式
5.1.1 传统控件通知消息
在介绍静态文本控件的用法之前,先讲述传统控件的控件通知消息。控件通过向父窗口
发送控件通知消息来表明发生了某种事件。例如,在按钮上单击鼠标时,按钮控件会向父窗
口发送BN_CLICKED 消息。传统控件的通知消息实际上是通过WM_COMMAND 消息发给
父窗口的(滚动条除外),在该消息的wParam 中含有通知消息码(如BN_CLICKED)和控
件的ID,在lParam 中则包含了控件的句柄。
利用ClassWizard 可以很容易地为控件通知消息加入消息映shè和消息处理函数,这在上
一章中的对话框应用程序中已经讲解过了。传统控件的消息映shè宏是ON_XXXX,其中XXXX
表示通知消息码,如BN_CLICKED。ON_XXXX 消息映shè宏格式如下,该宏有两个参数,
一个是控件的ID,一个是消息处理函数名:
ON_XXXX(nIDcommberFxn)
消息处理函数的声明形式如下:
afx_msg voidcommberFxn();
有时,为了处理方便,需要把多个ID 连续的控件发出的相同消息映shè到同一个处理函
数上,这时就要用到ON_CONTROL_RANGE 宏。例如,要处理一组单选按钮发出的
BN_CLICKED 消息,相应的消息映shè如下:
ON_CONTROL_RANGE(BN_CLICKED,IDC_FIRST,IDC_LAST,OnRadioClicked)
ON_CONTROL_RANGE 消息映shè宏的第一个参数是控件消息码,第二和第三个参数分
别指明了一组连续的控件ID 中的头一个和最后一个ID,最后一个参数是消息处理函数名。
函数OnRadioClicked 的声明如下,该函数比上面的OnAddcommberFxn 多了一个参数nID
以说明发送通知消息的控件ID。
afx_msg void OnRadioClicked(UINT nID);
组框
编辑框
复选框
静态文本
列表框
组合框
单选按钮
普通按钮
枫叶文学网www.fywxw.com
第5 章 常用控件
·101·
另外需要注意的是:ClassWizard 不支持ON_CONTROL_RANGE 宏,所以需要手工建立
消息映shè和消息处理函数。
5.1.2 静态控件的使用