找回密码
 加入
搜索
查看: 9197|回复: 12

[GUI管理] _GUICtrlListView_Create中设置扩展样式有问题(bug?)

  [复制链接]
发表于 2012-11-28 17:28:48 | 显示全部楼层 |阅读模式
本帖最后由 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 函数出来。
发表于 2012-11-28 18:30:51 | 显示全部楼层
简单测试下,问题~~~
 楼主| 发表于 2012-11-28 20:16:36 | 显示全部楼层
回复 2# annybaby

对啊,是有问题啊
没有格子线了
发表于 2012-11-28 20:38:12 | 显示全部楼层
回复 3# xiehuahere


    抱歉,手机上网,修改不了,是没有问题
 楼主| 发表于 2012-11-28 21:01:49 | 显示全部楼层
公司是XP,我在家里的Win7 32位上也试了下,也还是有问题的
鼠标指到subitem,下面状态栏也不更新了。
 楼主| 发表于 2012-11-28 21:01:51 | 显示全部楼层
公司是XP,我在家里的Win7 32位上也试了下,也还是有问题的
鼠标指到subitem,下面状态栏也不更新了。
发表于 2012-11-29 10:43:19 | 显示全部楼层
回复 6# xiehuahere


    上个图有那么难吗??呵呵
 楼主| 发表于 2012-11-29 11:57:36 | 显示全部楼层
回复 7# annybaby

我之前也是手机发帖,不方便。



gif动画,不知道能显示不。
你看啊,鼠标悬在Column1(item)上下移动的时候,状态栏是有变化的;
但鼠标悬在Column2和Column3(subitem)上下移动,状态栏就无变化了。
而且gridline风格何在??

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-11-29 12:45:11 | 显示全部楼层
本帖最后由 annybaby 于 2012-11-29 12:47 编辑

回复 8# xiehuahere


sorry,MS真有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-11-29 12:51:03 | 显示全部楼层
本帖最后由 xiehuahere 于 2012-11-29 13:02 编辑

回复 9# annybaby


嗯,不清楚什么原因啊。
 楼主| 发表于 2012-11-30 13:12:03 | 显示全部楼层
本帖最后由 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了 ;-)
 楼主| 发表于 2012-12-5 11:46:16 | 显示全部楼层
说明下,autoit版本是3.3.7.15.1
发表于 2012-12-5 12:24:55 | 显示全部楼层
本帖最后由 netegg 于 2012-12-5 23:45 编辑

[au3]#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)
[/au3]
解决方法暂时没想到,上述可以算是原因

又测试了下,应该是udf的构造问题,样式都改成一样的数值还是没用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 16:15 , Processed in 0.259051 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表