高级控件
列表控件
- 初始化
- 设置窗口风格:
- 设置窗口风格:
- 消息
- NM_CLICK : 左键单击
- NM_DBCLICK : 左键双击
- NM_RCLICK : 右键单击
- NM_RDBCLICK : 右键双击
- NM_RETURN : 回车
- 操作函数:
- | 函数 | 说明 | | —- | —- | | InsertColumn | 插入一列 | | DeleteColumn | 删除一列 | | InsertItem | 插入一行 | | DeleteItem | 删掉一行 | | GetItemText | 获取某一个单元格的文本 | | SetItemText | 设置某一个单元格的文本 | | GetItemData | 获取单元格中的值 | | SetItemData | 用int型数据设置单元格文本 | | GetItemCount | 获取行数 |
获取被点击的节点
// HitTest可以根据鼠标的位置来找到
// 节点的行.(是判断鼠标坐标是落在哪
// 一行上)
// 鼠标坐标必须转换成列表控件的客户区
// 坐标
CPoint pos;
GetCursorPos(&pos);
// !!!
// 必须是通过列表控件所绑定的变量来调用
// ScreenToClient函数.
// !!!!
m_list.ScreenToClient(&pos);
int nIndex = m_list.HitTest(pos);
if (nIndex != -1) {
CString buff;
buff = m_list.GetItemText(nIndex, 0);
MessageBox(buff);
}
节点附加数据的使用
树控件
- 初始化
- 消息
- 和列表控件一样
- 操作函数:
- | InsertItem | 插入一项 | | —- | —- | | DeleteAllItems | 删除所有项 | | DeleteItem | 删除某一项 | | SelectItem | 选择某一项 | | GetItemText | 获取某个节点的文本 | | GetNextSiblingItem | 获取下个兄弟节点 | | GetPrevSiblingItem | 获取上个兄弟节点 | | GetParentItem | 获取父节点 | | GetRootItem | 获取根节点 | | GetSelectedItem | 获取被选择的项 |
选项卡控件
子类化Tab控件
- 继承CTabCtrl类
- 添加成员函数: addTab 来添加一个选项卡.
- 选项卡的标题
- 选项卡的子窗口
- 处理
TCN_SELCHANG
发射消息- 将所有选项卡的子窗口的大小设置成Tab控件的客户区大小
- 将所有选项卡的子窗口的坐标移动到Tab控件的客户区
- 将所有的选项卡的子窗口隐藏
- 将当前选项卡对应的子窗口显示