kk_lee69 发表于 2016-10-16 19:06:37

LISTVIEW 处于 DISABLE状态后 则滚动条无法拉动,有办法 可以拉动吗??

LISTVIEW 处于 DISABLE状态后 则滚动条无法拉动,有办法 可以拉动吗??
或者 改变处于 READONLY 状态 可以吗??

简单的说就是想要 LISTVIEW 处于只读的状态 ,只想让USER 可以拉动
看内容而已…………

有办法做到吗???


cfanpc 发表于 2016-10-17 19:46:24

是否可以发送按键下来实现拖动?

tubaba 发表于 2016-10-18 18:49:17

本帖最后由 tubaba 于 2016-10-18 18:55 编辑

回复 1# kk_lee69


    不知道你想要什么效果,被禁用了应该就不能动了吧.   listview本来就是只读的啊?或者你想要保持列宽不变?也就是列表头不能被拖动?


如果是这样,表头的句柄获取$hTab1_ListView2_Header = _GUICtrlListView_GetHeader($hTab1_ListView2)
注册WM_NOTIFY消息.然后只要在拖动表头的消息$HDN_BEGINTRACK, $HDN_BEGINTRACKW, $HDN_ITEMCHANGING, $HDN_ITEMCHANGINGW 发生后返回 0 就成了

kk_lee69 发表于 2016-10-18 19:10:05

回复 3# tubaba

呵呵 因為我使用了太多 左擊 雙左擊 右擊 的功能

所以 想說DISABLE 這樣我就不用再特別處理 這些問題了

目的是 讓 USER 只能看 不能使用其他功能

tubaba 发表于 2016-10-18 19:35:22

本帖最后由 tubaba 于 2016-10-18 19:39 编辑

回复 4# kk_lee69
    那也行的,消息过滤,除了滚动条消息之外,其它一律return false


在列表更新完成以后注册WM_NOTIFY,或者设置一个全局标志.然后消息过滤

kk_lee69 发表于 2016-10-18 19:42:48

回复 5# tubaba

可是有個缺憾你知道 ENABLE 跟 DISABLE 顏色不一樣   USER 會知道有分別

但是 我 鎖掉 消息後 顏色是不會變的因此不會有 啟用 跟不啟用的差別

所以後來就在想辦法 看看能不能變成半透明沒想到這條路也是不通....

Alam 发表于 2016-10-18 20:33:55

禁用控件后,另作按钮滚动吧.#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("Listview Custom Draw", 400, 300)

$ListView = GUICtrlCreateListView( "Column 1|Column 2|Column 3", 2, 2, 394, 268)
$hListView = GUICtrlGetHandle(-1)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_NOSCROLL))

For $i = 1 To 35
      _GUICtrlListView_AddItem($hListView, "Row" & $i & ": Col 1", $i - 1)
      For $j = 1 To 2
                _GUICtrlListView_AddSubItem($hListView, $i - 1, "Row" & $i & ": Col " & $j + 1, $j)
      Next
Next
GUICtrlSetState($ListView, $gui_disable)

$button1 = GUICtrlCreateButton('向上', 290, 280, 50, 18)
$button2 = GUICtrlCreateButton('向下', 340, 280, 50, 18)
GUISetState()
While 1
        $msg =GUIGetMsg()
    Switch $msg
                Case$GUI_EVENT_CLOSE
                        GUIDelete()
                        Exit
                Case $button2
                        _GUICtrlListView_Scroll($hListView, 0, 150)
                Case $button1
                        _GUICtrlListView_Scroll($hListView, 0, -150)
        EndSwitch
WEnd

kk_lee69 发表于 2016-10-19 09:06:11

回复 7# Alam

這個想法不錯了也是個解決辦法!!感謝

chzj589 发表于 2016-10-21 10:13:34

回复 7# Alam

横的滑块如何拉动?

Alam 发表于 2016-10-21 18:03:47

_GUICtrlListView_Scroll($hListView, 100, 0)回复 9# chzj589

chzj589 发表于 2016-10-21 18:13:41

回复 10# Alam
横的滑块向右这样可以。
_GUICtrlListView_Scroll($hListView, 5, -10)
向左呢?

Alam 发表于 2016-10-21 19:38:14

回复 11# chzj589 _GUICtrlListView_Scroll($hListView, -100, 0)

chzj589 发表于 2016-10-21 21:33:14

回复 12# Alam

谢谢!{:face (361):}
横的滑块向右:
_GUICtrlListView_Scroll($hListView, 100, 0)
横的滑块向左:
_GUICtrlListView_Scroll($hListView, -100, 0)
页: [1]
查看完整版本: LISTVIEW 处于 DISABLE状态后 则滚动条无法拉动,有办法 可以拉动吗??