_GUICtrlListView_Create中设置扩展样式有问题(bug?)
本帖最后由 xiehuahere 于 2012-11-30 13:18 编辑帮助文档中_GUICtrlListView_GetHotItem的例子修改一下:
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
$hListView = GUICtrlGetHandle($hListView)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
这三句替换为下面这一行代码:
$hListView = _GUICtrlListView_Create($hGUI, "", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
GRIDLINE扩展风格未能正确设置,也不能 track hot item了(鼠标在subitem上移动状态栏显示不更新)。
再将这一行代码替换为:
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
$hListView = GUICtrlGetHandle($hListView)
发现一切又正常了。
这是不是说明了 _GUICtrlListView_Create函数设置扩展样式有问题? Bug??
可能写这个函数的人是知道有这个问题的,所以搞了个 _GUICtrlListView_SetExtendedListViewStyle 函数出来。 简单测试下,问题~~~ 回复 2# annybaby
对啊,是有问题啊
没有格子线了 回复 3# xiehuahere
抱歉,手机上网,修改不了,是没有问题 公司是XP,我在家里的Win7 32位上也试了下,也还是有问题的
鼠标指到subitem,下面状态栏也不更新了。 公司是XP,我在家里的Win7 32位上也试了下,也还是有问题的
鼠标指到subitem,下面状态栏也不更新了。 回复 6# xiehuahere
上个图有那么难吗??呵呵 回复 7# annybaby
我之前也是手机发帖,不方便。
gif动画,不知道能显示不。
你看啊,鼠标悬在Column1(item)上下移动的时候,状态栏是有变化的;
但鼠标悬在Column2和Column3(subitem)上下移动,状态栏就无变化了。
而且gridline风格何在?? 本帖最后由 annybaby 于 2012-11-29 12:47 编辑
回复 8# xiehuahere
sorry,MS真有问题 本帖最后由 xiehuahere 于 2012-11-29 13:02 编辑
回复 9# annybaby
嗯,不清楚什么原因啊。 本帖最后由 xiehuahere 于 2012-11-30 13:16 编辑
再来,一楼代码再变一变,变为下面这样就又是ok的。
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
$hListView = GUICtrlGetHandle($hListView)
即在GUICtrlCreateListView中设置扩展样式就没问题。
看来,这很可能是_GUICtrlListView_Create的一个bug了 ;-) 说明下,autoit版本是3.3.7.15.1 本帖最后由 netegg 于 2012-12-5 23:45 编辑
#Include <guilistview.au3>
#Include <WinAPIEx.au3>
$hGUI = GUICreate('')
$hWnd = _GUICtrlListView_Create($hGUI, "", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
ConsoleWrite(Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_EXSTYLE)) & '------' & Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_STYLE))& @cr)
$hWnd = GUICtrlCreateListView("", 2, 2, 394, 268)
$hWnd = GUICtrlGetHandle($hWnd)
_GUICtrlListView_SetExtendedListViewStyle($hWnd, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
ConsoleWrite(Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_EXSTYLE)) & '------' & Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_STYLE))& @cr)
$hWnd = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_TRACKSELECT))
$hWnd = GUICtrlGetHandle($hWnd)
ConsoleWrite(Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_EXSTYLE)) & '------' & Hex(_WinAPI_GetWindowLongEx($hWnd, $GWL_STYLE))& @cr)
解决方法暂时没想到,上述可以算是原因
又测试了下,应该是udf的构造问题,样式都改成一样的数值还是没用
页:
[1]