765058729 发表于 2013-11-1 22:33:07

[已解决】 不知道怎么说请进来看,这个效果怎么做

本帖最后由 765058729 于 2013-11-3 02:39 编辑

如图效果:注意是动画, “卷标” 长度,松开鼠标后底下的滑动条自动消失


太占资源了吧If Not IsKeyDown("01") Then
        _GUICtrlListView_SetColumnWidth($listview, 2, 150)
        _GUICtrlListView_SetColumnWidth($listview, 0, 150)
EndIf
       
       
       
Func IsKeyDown($HexKey)
        Local $dll = DllOpen("user32.dll")
        If _IsPressed($HexKey, $dll) Then
                DllClose($dll)
                Return 1
        Else
                DllClose($dll)
                Return 0
        EndIf
EndFunc   ;==>IsKeyDown

nmgwddj 发表于 2013-11-1 23:03:23

安装目录下GUI例子有。

765058729 发表于 2013-11-1 23:29:24

安装目录下GUI例子有。
nmgwddj 发表于 2013-11-1 23:03 http://www.autoitx.com/images/common/back.gif

不是这个,注意动画 “卷标” 长度那里,松开鼠标后底下的滑动条自动消失

user3000 发表于 2013-11-1 23:29:31

回复 2# nmgwddj


    楼主意思应该是?
   鼠标拖动列宽度时,松开鼠标后列宽立即恢复原来长度吧。

765058729 发表于 2013-11-1 23:31:47

回复 4# user3000

对了,表达能力差,就是你说的意思

haijie1223 发表于 2013-11-1 23:52:48

难道是循环检测~

765058729 发表于 2013-11-1 23:58:32

难道是循环检测~
haijie1223 发表于 2013-11-1 23:52 http://www.autoitx.com/images/common/back.gif

这个是程序http://pan.baidu.com/s/11PqTg

1960025285 发表于 2013-11-2 09:21:39

建议楼主看看【年老痴呆】大师的GHOST克隆工具,应该可以解决楼主的疑问!

haijie1223 发表于 2013-11-2 09:38:22

回复 7# 765058729


    我知道是程序,我说这个列宽是不是循环检测并设定值啊。#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

Dim $hListView

GUICreate("ListView Set Column Width", 400, 300)
$hListView = GUICtrlCreateListView("这一列是固定列宽|Column 2|Column 3", 2, 2, 394, 268)
_GUICtrlListView_SetColumnWidth($hListView, 0, 200)
GUISetState()

Do
        If _GUICtrlListView_GetColumnWidth($hListView, 0) <> 200 Then _GUICtrlListView_SetColumnWidth($hListView, 0, 200)
Until GUIGetMsg() = $GUI_EVENT_CLOSE

seniors 发表于 2013-11-2 09:48:06

这个要用回调函数
侦测左键释放

haijie1223 发表于 2013-11-2 12:35:38

回复 10# seniors


    有道理,不过他上传的软件在xp下似乎直接不可更改列宽~

user3000 发表于 2013-11-2 12:38:52

窗体消息模式里,GuiGetMsg 可以直接捕捉到一般鼠标按键的消息。
将9楼代码稍为转化一点就好。#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
Dim $hListView, $Form
$Form = GUICreate("ListView Set Column Width", 400, 300)
$hListView = GUICtrlCreateListView("这一列是固定列宽|Column 2|Column 3", 2, 2, 394, 268)
_GUICtrlListView_SetColumnWidth($hListView, 0, 200)
GUISetState()
While 1      
Switch GUIGetMsg()
        Case -3
                GUIDelete($Form)
                ExitLoop
        Case -8 ;鼠标左键弹起
                If _GUICtrlListView_GetColumnWidth($hListView, 0) <> 200 Then _GUICtrlListView_SetColumnWidth($hListView, 0, 200)
EndSwitch
WEnd

765058729 发表于 2013-11-2 18:37:15

本帖最后由 765058729 于 2013-11-2 18:40 编辑

回复765058729


    我知道是程序,我说这个列宽是不是循环检测并设定值啊。
haijie1223 发表于 2013-11-2 09:38 http://www.autoitx.com/images/common/back.gif

老大想多了,我只是链接个示例程序,你的代码可以搞定了

765058729 发表于 2013-11-2 18:52:52

本帖最后由 765058729 于 2013-11-2 19:01 编辑

窗体消息模式里,GuiGetMsg 可以直接捕捉到一般鼠标按键的消息。
将9楼代码稍为转化一点就好。
user3000 发表于 2013-11-2 12:38 http://www.autoitx.com/images/common/back.gif

你这个完美了,谢谢,图片里拖动时文字居中并跟着拖动是扩展样式吗,我怎么找不到

afan 发表于 2013-11-2 19:40:15

这个效果友好吗 …
我没有想到任何人性化的地方
页: [1] 2
查看完整版本: [已解决】 不知道怎么说请进来看,这个效果怎么做