声明:由于在csdn论坛看到不少vc新手问及vc控件的使用。本人手头正好有一份以前下载到的一份资料,讲述的比较详细。所以发出来和大家共享。但由于时间久远,已不及得下载的地址了。所以只能以收藏方式发表。下面有原作者的单位和姓名。在此表示歉意!
演练vc中的common一族
辽宁省铁岭市委办公室(112000)宋立波
1.表头控制 header control
2.图像列表控制 image list
3.列表控制和视 list control&list view
4.树控制和视 tree control&tree view
5.标签控制和视 tab control&tab view
6.工具条控制 toolbar control
7.进度条控制 progress control
8.滑动条控制 slider control
9.旋转按钮控制 spin button control
10.状态条控制 status bar control
其中,绝大部分通用控制在mfc类库中都存在两种封装形式,即控制类和视类,控制类主要是供直接使用控制而提供的,而视类则是通过间接使用控制而提供的,视类可以更好地把控制类集成到mfc结构中,并且使用视类可以利用引用直接对嵌套在其中的控制进行各种操作。两者在使用方法上没有太大区别,就拿列表控制类和视类来说,当创建列表视后可通过clistctrl& ctrllist = getlistctrl()成员函数取得视类引用ctrllist之后,就可以利用列表视的视函数对视进行各项操作(ctrllist.add等)。
第1章 演练cheadctrl
表头控制(cheaderctrl)通常应用在窗口中的文本或数据的列表之上。一般为数据列的标题,可以包括多个部分,用户可以拖动每个部分并可以控制每列的宽度。表头控制类提供了普通表头控制的基本方法,只有在windows95以后版本系统中才提供,其方法包含在afxcmn.h文件中,一般与标签控制(ctabctrl)和列表控制(clistctrl)组合使用。
1.1 表头控制的对象结构
1.1.1 表头控制对象的建立方法
cheaderctrl &cheaderctrl 建立表头控制对象
create 建立表头并绑定对象
cheaderctrl::create的格式如下:bool create( dword dwstyle, const rect&
rect, cwnd* pparentwnd, uint nid );
其返回值非零时初始化成功,否则失败。
参数dwstyle用来确定表头控制类型;rect用来确定表头控制的大小和位置;parentwnd用来确定表头控制的父窗口;nid用来表示表头控制的标志。
表头控制风格包括:
hds_buttons 表示表头控制外观类似按钮;
hds_horz 表示表头控制为水平排列;
hds_vert 表示表头控制为垂直排列;
hds_hidden 表示表头控制为隐藏模式。
它也可以使用普通类控制风格,包括:
ccs_bottom 设置控制位置在父窗口的底部并与父窗口同样宽度;
ccs_nodivider 在控制顶部形成两个像素的高亮区;
ccs_nohilite 在控制顶部形成一个像素的高亮区;
ccs_nomovey 在响应wm_size消息时重置大小并水平排列;
ccs_noparentalign 使控制自动靠近父窗口的顶部或底部;
ccs_noresize 设置初始大小或新值时使控制使用默认宽度和高度;
ccs_top 设置在父窗口客户区域的顶部并与父窗口同样宽度;
同样表头控制也可以使用窗口控制风格,包括:
ws_child 建立一个子窗口,不能用于ws_popup窗口类型;
ws_visible 建立一个初始时不可见的窗口;
ws_disabled 建立一个初始时无效的窗口;
ws_group 确定可用光标移动的控制群组;
ws_tabstop 确定可用tab控制移动站点;
表头控制一般分为两个步骤,首先确定表头控制的数据结构,然后建立表头控制并绑定对象。
1.1.2 表头控制的属性
表头控制的属性包括取得表头控制中项目的数量getitemcount、取得表头控制中某一项目的内容getitem和设置表头控制中某一项目的内容setitem。
1.1.3 表头控制的操作方法
表头控制的操作方法包括向表头控制中插入一个新项目insertitem、从表头控制中删除一个项目deleteitem和绘制表头中给定的项目drawitem等。
1.2 表头控制的数据结构
在使用表头控制时,首先必须建立一个数据结构hd_item,其结构定义如下:
typedef struct _hd_item
{ uint mask; file://结构成员有效控制位
int cxy; file://表头项目的宽度
lpstr psztext; file://表头项目内容
hbitmap hbm; file://表头项目的位置句柄
int cchtextmax; file://表头内容字符串长度
int fmt; file://表头项目的格式
lparam lparam; file://应用程序定义的32位数据
} hd_item;