2010-08-11 105 views
3

我想在我的网格列表控件上设置LVS_EX_FULLROWSELECT样式,因为我想要全行选择。但显然它没有任何效果。由于我也使用其他一些样式,所以我想知道LVS_EX_FULLROWSELECT是否与其他样式有任何兼容性问题。任何人?以下是我设定的样式。LVS_EX_FULLROWSELECT是否与其他样式有兼容性问题?

最初以下样式设置在基地列表控件类:

WS_CHILD|WS_BORDER|LVS_REPORT|LVS_SHOWSELALWAYS|LVS_SINGLESEL 

然后我尝试在派生网格列表控件类设置其他样式:

ListView_SetExtendedListViewStyleEx(sysId(), 0, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT); 

回答

2

您需要发送的LVM_ SETEXTENDEDLISTVIEWSTYLE消息到控件并指定LVS_EX_FULLROWSELECT扩展样式(来源:MS Support)。

编辑:

检查的例子。有

ListView_SetExtendedListViewStyle(m_hWnd, ListView_GetExtendedListViewStyle(m_hWnd), VS_EX_FULLROWSELECT); 

尝试使用的ListView_GetExtendedListViewStyle(sysId())代替0。顺便说一句 - 这是你的sysId()真的检索窗口句柄?这个名字听起来有些不同。

干杯。

+0

谢谢但是这是我在做什么。 ListView_SetExtendedListViewStyleEx宏调用场景后面的LVM_SETEXTENDEDLISTVIEWSTYLE。而且我在调用中已经有了LVS_EX_FULLROWSELECT。但它不起作用,这就是为什么我认为LVS_EX_FULLROWSELECT风格可能与我正在使用的其他风格存在兼容性问题。 – 2010-08-12 11:13:37

+0

我编辑了我的答案给你更详细的提示。希望能帮助到你。 – 2010-08-12 11:54:56

+0

它仍然不起作用。看来LVM_SETEXTENDEDLISTVIEWSTYLE与我设置的其他一些样式冲突。是的,sysId()确实检索窗口句柄。不管怎么说,还是要谢谢你。 – 2010-08-17 16:47:12

4

第二个参数是一个面具,所以你需要:

ListView_SetExtendedListViewStyleEx(m_hWnd, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT, LVS_EX_GRIDLINES | LVS_OWNERDATA | LVS_EX_FULLROWSELECT); 
+0

谢谢。我试过了,但没有奏效。顺便说一句,在第二个参数不是0意味着匹配一切。至少这是文档说的。 – 2010-08-17 16:42:52