1.
首先区分LVS_与LVS_EX_,哪些是常规样式,哪些是扩展样式:能在属性对话框里看到的样式都是常规样式,例如LVS_REPORT。
扩展样式:
LVS_EX_CHECKBOXES | 您可以获得 ListView_GetCheckState 指定项目的复选框的状态。若要设置检查状态,请使用 ListView_SetCheckState。如果设置了此样式,则当用户单击该复选框,或按空格键在列表视图控件自动切换复选状态。 |
LVS_EX_FLATSB | 扁平滚动条 列表视图中的启用平面滚动条。如果您需要更多的控制列表视图滚动条的外观,您应该操作平的滚动栏 Api 使用直接的列表视图滚动条。如果更改系统度量,您负责调整与 FlatSB_SetScrollProp 的滚动栏度量。有关进一步的详细信息请参阅平滚动条。 |
LVS_EX_FULLROWSELECT | 选择整行 当选择某个项目时,强调了项目和其所有子项。此样式是仅在 LVS_REPORT 风格结合中可用。 |
LVS_EX_GRIDLINES | 绘制表格 显示项及其子项周围的网格线。此样式是仅在 LVS_REPORT 风格结合中可用 |
LVS_EX_HEADERDRAGDROP | 报表头可以拖拽 允许拖放的列表视图控件中的列重新排序。此样式是只可用于使用 LVS_REPORT 样式的列表视图控件。 |
LVS_EX_INFOTIP | 将提示信息窗口的消息通知父窗口 当列表视图控件使用的 LVS_EX_INFOTIP 样式时,LVN_GETINFOTIP 通知代码发送到父窗口显示工具提示项之前。 |
LVS_EX_LABELTIP | |
LVS_EX_MULTIWORKAREAS | 多工作区 |
LVS_EX_ONECLICKACTIVATE | 单击激活 |
LVS_EX_REGIONAL | |
LVS_EX_SUBITEMIMAGES | 子项目图标列表 |
LVS_EX_TRACKSELECT | 自动换行 |
LVS_EX_TWOCLICKACTIVATE | 双击激活 |
LVS_EX_UNDERLINECOLD | |
LVS_EX_UNDERLINEHOT |
2.
下面弄清楚怎么设置常规样式和扩展样式。
设置常规样式使用的函数:GetWindowLong(仅32位下)、SetWindowLong()
设置扩展样式使用的函数:GetExtendedStyle、SetExtendedStyle
示例代码:
DWORD dwStyle=GetWindowLong(m_list.m_hWnd,GWL_STYLE);
SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
DWORD styles=m_list.GetExtendedStyle();
m_list.SetExtendedStyle(styles|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);