Tab Control And List Control使用小记
来源:互联网 发布:卖狗狗的软件 编辑:程序博客网 时间:2024/05/16 19:06
Tab Control
TCITEM tci;tci.mask = TCIF_TEXT;tci.pszText = TEXT("Tab1");TabCtrl_InsertItem(hTab, 0, &tci);// 其中0为第几个Tab页,这里为第0个,也就是第一个tci.pszText = TEXT("Tab2");TabCtrl_InsertItem(hTab, 1, &tci);// 第1个Tab,也就是第二个切换Tab页程序需要处理WM_NOTIFY消息, 消息的wParam参数的低16位为控件标识符, lParam参数为一个指向NMHDR结构的指针,切换时,NMHDR结构的code成员指定的当前动作,TCN_SELECHANGING为切换中,这时获取当前的Tab页时还是获取的旧的,TCN_SELECHANG这个消息时获取当前Tab页为切换后的Tab页
NMHDR结构:
typedef struct tagNMHDR { HWND hwndFrom; UINT idFrom; UINT code;} NMHDR;
List Control
添加分栏 > 这里所说的分栏呢就是上面图中的分栏1、分栏2那里,当然,可以多分,添加分栏可以发送消息,LVM_INSERTCOLUMN,wParam参数为分栏号,从0开始,lParam为LVCOLUMN结构指针
如:
LVCOLUMN column;// 指定LCOLUMN结构的pszText, fmt, cx有效column.mask = LVCF_TEXT | LVCF_FMT | LVCF_WIDTH;// 设置有效地域的属性column.fmt = LVCFMT_CENTER;// 指定文本居中显示column.cx = 100;// 指定此栏的宽度column.pszText = "分栏1";// 指定此栏显示的文本// 添加一个新的专栏SendMessage(hList, LVM_INSERTCOLUMN, 0, (LPARAM)&column);// 再添加一个专栏column.pszText = "分栏2";column.cx = 50;SendMessage(hList, LVM_INSERTCOLUMN, 1, (LPARAM)&column);
添加行 > 这里可能说法不同吧,我是说的“行”,这个行就是指Test1和Teste2那一行了,这里有几个消息,分别记录,消息如下:
WM_INSERTITEM > 这里的wParam参数为0, lParam参数为一个LVITEM结构的指针
WM_SETITEM > wParam参数为0, lParam参数为LVITEM的指针
WM_SETITEMTEXT > wParam参数为行号,lParam参数为指向LVITEM的指针
先说WM_INSERTITEM和WM_SETITEMTEXT的配合:
// 插入一行 LVITEM lvi = { 0 };lvi.mask = LVIF_TEXT;// 指定pszText域有效 lvi.iItem = nItem;// LVM_INSERTITEM消息里, iItem为行号 lvi.pszText = TEXT("Test1"); // 设置文本 SendMessage(hWndList, LVM_INSERTITEM, 0, (long)&item); // 分栏1 的文本被设置(第0列) // 设置每行第0列以后的列的内容 lvi.iSubItem = 1; // 指定要设置的列, 这里的第1列也就是分栏2那一列lvi.pszText = TEXT("Test2"); // 要设置的文本 SendMessage(hWndList, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi); // nItem为行号,设置第1列下面是WM_INSERTITEM和WM_SETITEM的配合:
// 插入一行 LVITEM lvi = { 0 }; lvi.mask = LVIF_TEXT; // 指定pszText域有效lvi.iItem = nItem;// LVM_INSERTITEM消息里, iItem为行号 lvi.pszText = NULL; // 设置文本 int nLine = SendMessage(hWndList, LVM_INSERTITEM, 0, (long)&lvi); // 这样子是添加一个空行,每行的所有列的内容为空 // 设置行中每列的值 lvi.iItem = nItem; // 行号 lvi.iSubItem = 0; // 列号,从0开始 lvi.pszText = TEXT("Test1"); // 要设置的文本 SendMessage(hWndList, LVM_SETITEM, 0, (LPARAM)&lvi); // 设置lvi.iItem行第lvi.iSubItem列的内容 lvi.iItem = nItem; // 行号 lvi.iSubItem = 1; // 列号 lvi.pszText = TEXT("Test2"); // 要设置的文本 SendMessage(hWndList, LVM_SETITEM, 0, (LPARAM)&lvi);
处理消息也是在WM_NOTIFY中,参数同Tab,(NMHDR *)lParam)->code指向一些消息,如NM_RCLICK是右击ListView控件
- Tab Control And List Control使用小记
- 使用Tab Control控件
- 如何使用Tab Control
- Tab Control 的使用
- Tab Control的使用
- Tab Control控件使用
- MFC Tab control使用
- List Control 基本使用
- list control的使用
- list control的使用
- List Control使用总结
- List Control 粗略使用
- List Control 控件使用
- MFC中使用Tab Control
- Tab Control控件的使用
- VC2010中tab control 使用
- Tab Control控件简单使用
- Tab Control控件简单使用
- redis持久化机制
- mac
- 配置samba共享文件夹
- WPF中在listview进行数据绑定,根据绑定数据调整一列的显示
- 什么是C Runtime函数库的多线程版本
- Tab Control And List Control使用小记
- 国际化
- 3D编程-旋转的三角形
- 【技艺】浅挖不如深钻
- 正确理解javascript的this关键字
- ORA-00257:archiver error.Connect internal only, until freed
- Android OpenGL ES 绘图方法参数解析
- JAVA基础整理
- 深入理解Javascript之this关键字