|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
应用开发
>>
vc
>>
vc控件
>> 文章正文
VC通用控件编程之CHeadCtrl控件
热
荐
【字体:
小
大
】
VC通用控件编程之CHeadCtrl控件
作者:- 文章来源:- 点击数: 更新时间:2006-4-20
表头控制(CHeaderCtrl)通常应用在窗口中的文本或数据的列表之上。一般为数据列的标题,可以包括多个部分,用户可以拖动每个部分并可以控制每列的宽度。表头控制类提供了普通表头控制的基本方法,只有在WINDOWS95以后版本系统中才提供,其方法包含在afxcmn.h文件中,一般与标签控制(CTabCtrl)和列表控制(CListCtrl)组合使用。
(一)表头控制的对象结构
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_NOHIL99vE 在控制顶部形成一个像素的高亮区;
CCS_NOMOVEY 在响应WM_SIZE消息时重置大小并水平排列;
CCS_NOPARENTALIGN 使控制自动靠近父窗口的顶部或底部;
CCS_NORESIZE 设置初始大小或新值时使控制使用默认宽度和高度;
CCS_TOP 设置在父窗口客户区域的顶部并与父窗口同样宽度;
同样表头控制也可以使用窗口控制风格,包括:
WS_CHILD 建立一个子窗口,不能用于WS_POPUP窗口类型;
WS_VISIBLE 建立一个初始时不可见的窗口;
WS_DISABLED 建立一个初始时无效的窗口;
WS_GROUP 确定可用光标移动的控制群组;
WS_TABSTOP 确定可用TAB控制移动站点;
表头控制一般分为两个步骤,首先确定表头控制的数据结构,然后建立表头控制并绑定对象。
2、表头控制的属性
表头控制的属性包括取得表头控制中项目的数量GetItemCount、取得表头控制中某一项目的内容GetItem和设置表头控制中某一项目的内容SetItem。
3、表头控制的操作方法
表头控制的操作方法包括向表头控制中插入一个新项目InsertItem、从表头控制中删除一个项目DeleteItem和绘制表头中给定的项目DrawItem等。
(二)表头控制的数据结构
在使用表头控制时,首先必须建立一个数据结构HD_99vEM,其结构定义如下:
typedef struct _HD_99vEM
{ UINT mask; //结构成员有效控制位
int cxy; //表头项目的宽度
LPSTR pszText; //表头项目内容
HB99vMAP hbm; //表头项目的位置句柄
int cchTextMax; //表头内容字符串长度
int fmt; //表头项目的格式
LPARAM lParam; //应用程序定义的32位数据
} HD_99vEM;
屏蔽控制位说明了数据结构成员中包含的有效数据,可以是下面标志的组合:
HDI_B99vMAP hbm成员有效
HDI_FORMAT fmt 成员有效
HDI_LPARAM lParam成员有效
HDI_TEXT pszText 和cchTextMax 成员有效
HDI_WIDTH cxy 成员有效并确定项目宽度值
格式标志位fmt可以是以下标志的组合:
HDF_CENTER 表头项目居中
HDF_LEFT 表头项目左对齐
HDF_RIGHT 表头项目右对齐
HDF_B99vMAP 表头显示一个位图
HDF_OWNERDRAW 由主窗口自绘表头项目
HDF_STRING 表头项目为一个字符串
(三)表头控制的应用技巧
由于表头控制无法单独使用,其主要是配合列表控制和标签控制,并多以文字表头应用多见,InsertItem、SetItem和GetItem是常用的方法,如在列表控制时利用InsertColumn属性就可以增加一个表列的文本标题,具体用法和技巧见列表控制和标签控制。下面以在列表控制中的增加表列的方法来具体说明:
l
vc
ol.pszText="品 名";//设置第一列表头名
l
vc
ol.iSubItem=i; //表列序号
l
vc
ol.cx=70; //表列宽度
m_ListCtrl.InsertColumn(i++,&l
vc
ol);//插入一个表列
l
vc
ol.pszText="数 量";//设置第二列表头名
l
vc
ol.iSubItem=i;
l
vc
ol.cx=70;
m_ListCtrl.InsertColumn(i++,&l
vc
ol);//插入一个表列
......//其它代码
[1]
[2]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
一个MSChart控件示例代码
下一篇文章:
如何用VC++实现在对话框的控件上显示ToolTip 并在状态条上显示控件的信息
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
VC控件 TreeCtrl 与 ListCtr…
CListCtrl 使用演示的例子
VC通用控件编程之CList控件
VC++在应用程序中使用标准窗…
用ATL和MFC来创建ActiveX控件
动态控件的生成与响应
可设置颜色的静态控件、单选…
支持数据项查找功能的树控制…
VC通用控件编程之CImageList…
做一个可编辑的表格控件
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd