Mar*_*ryl 16 windows winapi listview windows-7 winforms
在Windows 7的Windows资源管理器列表视图(据称根本不是列表视图)的详细信息视图中,您可以在第一个(名称)列中启动选择选取框.你只需要在实际名称之外开始.

"详细信息"视图中的默认样式列表视图控件也是如此.
但是,如果将列表视图控件设置为Explorer样式(使用SetWindowTheme),那么应该模仿Windows资源管理器,这将不再起作用.您只能在第二列和后面的列中开始选择.
SetWindowTheme(listView1.Handle, "explorer", null);
Run Code Online (Sandbox Code Playgroud)
有没有办法让列表视图模仿资源管理器的选择样式?
我想没有设置来启用这种行为,这必须编码.喜欢处理鼠标并触发选择.但我不知道该怎么做.
谢谢.
Ntb,我正在使用C++ Builder,但这应该是纯粹的Win32问题.我也用WinForms进行了测试(因此上面的C#示例).
Dav*_*nan 12
有没有办法让列表视图模仿资源管理器的选择风格?
不,SysListView32在explorer主题中不表现那样.现代资源管理器使用的控件实际上是DirectUIHwnd.而你无法使用其中之一.
获得行为的唯一方法DirectUIHwnd是自己编写代码.我希望这可以做到,但我也希望它很难实现.
实际上有一种模仿资源管理器选择行为的方法.它需要大量额外的声明性工作,但它是可能的.
您需要IListView通过未记录的LVM_QUERYINTERFACE消息获取未记录的接口(请注意,Windows Vista和Windows 7+的接口声明和GUID是不同的).有关常量和声明的详细信息,请访问:
获取界面后,您只需要调用SetSelectionFlags(1, 1)方法即可.瞧,你已经完成了.
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |