Listctrl 样式和LV_ITEM和LV_COLUMN
来源:互联网 发布:js 3D图形插件 编辑:程序博客网 时间:2024/06/04 17:54
列表框主要用于输入,它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示.列表框具有边框,并且一般带有一个垂直滚动条.列表框分单选列表框和多重选择列表框两种.单选列表框一次只能选择一个列表项,而多重选择列表框可以进行多重选择.对于列表项的选择,
应用程序用CreateWindowEx创建列表框控件时,可根据控件的用途在下表中选择部份常数来设定其风格属性(style)。
常数说明LBS_DISABLENOSCROLL固定显示垂直滚动条。未指定本项时,当列表未超出窗口,垂直滚动条自动隐藏。LBS_EXTENDEDSEL使用键盘“SHIFT”键或另指定键加鼠标进行多选。LBS_HASSTRINGS含有字符串的自绘式列表框.应用程序在自绘式列表框进行自绘时可以用LB_GETTEXT消息来取得列表项的文本。LBS_MULTICOLUMN多列列表框,带有水平滚动条。应用程序可以用 LB_SETCOLUMNWIDTH 消息来为列表框指定列数。LBS_MULTIPLESEL支持多重选择。列表项的选择状态随着用户对该项单击或双击鼠标而翻转。LBS_NODATA本项已不被支持。LBS_NOINTEGRALHEIGHT列表框的尺寸由应用程序而不是Windows指定.通常,Windows指定尺寸会使列表项的某些部分隐藏起来。LBS_NOREDRAW禁止刷新。当选择发生变化时防止列表框被更新,可发送WM_SETREDRAW来改变该风格。LBS_NOSEL禁止选择,列表项只能看,不能被选择。LBS_NOTIFY当用户单击或双击鼠标时通知父窗口。LBS_OWNERDRAWFIXED指定自绘式列表框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度。在控件被创建时父窗口将收到WM_MEASUREITEM 消息,当需要重绘时父窗口将收到 WM_DRAWITEM 消息。LBS_OWNERDRAWVARIABLE指定自绘式列表框,并且列表项有不同的高度.在控件被创建时父窗口将收到WM_MEASUREITEM消息,当需要重绘时父窗口将收到 WM_DRAWITEM 消息。LBS_SORT使插入列表框中的项按字母升序排列.LBS_STANDARD使用默认风格,相当于指定了边框,垂直滚动条,字母升序排列和鼠标单双击通知消息这几项风格LBS_USETABSTOPS使列表框在显示列表项时识别并扩展制表符(08h),缺省的制表宽度是32个对话框单位。LBS_WANTKEYBOARDINPUT响应键盘输入。当控件拥有键盘输入焦点时,允许接收父窗口接收WM_VKEYTOITEM和WM_CHARTOITEM消息,输入字符。
应用程序可以通过调用SendMessage向控件发送如下消息来设定和查询控件各种参数。
当用户在列表框上进行各种操作时,其父窗口将收到WM_COMMAND通知消息,同时wParam的低16位带控件的ID。lParam带控件句柄(hWnd),wParam的高16位带有如下表的消息代码。
LVS_ALIGNLEFT 用来确定表项的大小图标以左对齐方式显示;
LVS_ALIGNTOP 用来确定表项的大小图标以顶对齐方式显示;
LVS_AUTOARRANGE 用来确定表项的大小图标以自动排列方式显示;
LVS_EDITLABELS 设置表项文本可以编辑,父窗口必须设有LVN_ENDLABELEDIT风格;
LVS_ICON 用来确定大图标的显示方式;
LVS_LIST 用来确定列表方式显示;
LVS_NOCOLUMNHEADER 用来确定在详细资料方式时不显示列表头;
LVS_NOLABELWRAP 用来确定以单行方式显示图标的文本项;
LVS_NOSCROLL 用来屏蔽滚动条;
LVS_NOSORTHEADER 用来确定列表头不能用作按钮功能;
LVS_OWNERDRAWFIXED 在详细列表方式时允许自绘窗口;
LVS_REPORT 用来确定以详细资料即报告方式显示;
LVS_SHAREIMAGELISTS用来确定共享图像列表方式;
LVS_SHOWSELALWAYS 用来确定一直显示被选中表项方式;
LVS_SINGLESEL 用来确定在某一时刻只能有一项被选中;
LVS_SMALLICON 用来确定小图标显示方式;
LVS_SORTASCENDING 用来确定表项排序时是基于表项文本的升序方式;
LVS_SORTDESCENDING 用来确定表项排序时是基于表项文本的降序方式;
typedef struct _LV_ITEM {
UINT mask; //结构成员屏蔽位
int iItem; //表项索引号
int iSubItem; //子表项索引号
UINT state; //表项状态
UINT stateMask; //状态有效性屏蔽位
LPTSTR pszText; //表项名文本
int cchTextMax; //表项名最大长度
int iImage; // 表项图标的索引号
LPARAM lParam; // 与表项相关的32位数
} LV_ITEM;
typedef struct _LV_COLUMN {
UINT mask; //结构成员有效性屏蔽位
int fmt; //表列对齐方式
int cx; //表列的象素宽度
LPTSTR pszText; //表列的表头名
int cchTextMax; //表列名的文本长度
int iSubItem; //与表列关联的子表项索引号
} LV_COLUMN;
其中fmt可以取如下值:
LVCFMT_CENTER 表列居中对齐
LVCFMT_LEFT 表列左对齐
- Listctrl 样式和LV_ITEM和LV_COLUMN
- Listctrl 样式和LV_ITEM和LV_COLUMN
- Listctrl 样式和LV_ITEM和LV_COLUMN
- Listctrl 样式和LV_ITEM和LV_COLUMN
- ListCtrl.InsertColumn和ListCtrl.InsertItem
- 动态创建和显示listctrl
- ListCtrl中GetFirstSelectedItemPosition和GetNextSelectedItem
- ListCtrl中GetFirstSelectedItemPosition和GetNextSelectedItem
- 在listctrl中显示文件名和图标
- VC中使用ListCtrl和LVITEM 经验总结
- VC中使用ListCtrl和LVITEM 经验总结
- listctrl 显示位图,只要建立一个CImageList 和listctrl建立连接就可以了
- 超链接样式和水平线样式
- 样式和主题之样式
- 关于ListCtrl,RichEdit和程序框架的一些东东
- 子类化CComboBox中的Edit和ListCtrl控件
- ListCtrl,TreeCtrl,ListBox和Edit的综合运用
- 在listctrl中添加edit和combox控件
- Log4j学习一
- XML CDATA 以及转意字符
- UVa 10790 - How Many Points of Intersection?
- MediaRecorder和AudioRecord的区别和联系
- 数据分析
- Listctrl 样式和LV_ITEM和LV_COLUMN
- 异常类中throw单独存在的特点
- HDU 1106 排序
- django 配置mysql错误:Error was: No module named mysql.base
- 3250灵魂附体?诺基亚PureView概念机809
- 字符串和字符比较浅析测试(源码摘自microsoft help)
- ReadFile
- Virtualbox搭建LNMP
- 加入CSDN