找回密码
 加入
搜索
查看: 10512|回复: 21

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

 火.. [复制链接]
发表于 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

本帖子中包含更多资源

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

×
发表于 2013-11-1 23:03:23 | 显示全部楼层
安装目录下GUI例子有。

本帖子中包含更多资源

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

×
 楼主| 发表于 2013-11-1 23:29:24 | 显示全部楼层
安装目录下GUI例子有。
nmgwddj 发表于 2013-11-1 23:03


不是这个,注意动画 “卷标” 长度那里,松开鼠标后底下的滑动条自动消失
发表于 2013-11-1 23:29:31 | 显示全部楼层
回复 2# nmgwddj


    楼主意思应该是?
   鼠标拖动列宽度时,松开鼠标后列宽立即恢复原来长度吧。
 楼主| 发表于 2013-11-1 23:31:47 | 显示全部楼层
回复 4# user3000

对了,表达能力差,就是你说的意思
发表于 2013-11-1 23:52:48 | 显示全部楼层
难道是循环检测~
 楼主| 发表于 2013-11-1 23:58:32 | 显示全部楼层
难道是循环检测~
haijie1223 发表于 2013-11-1 23:52


这个是程序http://pan.baidu.com/s/11PqTg
发表于 2013-11-2 09:21:39 | 显示全部楼层
建议楼主看看【年老痴呆】大师的GHOST克隆工具,应该可以解决楼主的疑问!
发表于 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
发表于 2013-11-2 09:48:06 | 显示全部楼层
这个要用回调函数
侦测左键释放
发表于 2013-11-2 12:35:38 | 显示全部楼层
回复 10# seniors


    有道理,不过他上传的软件在xp下似乎直接不可更改列宽~
发表于 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
 楼主| 发表于 2013-11-2 18:37:15 | 显示全部楼层
本帖最后由 765058729 于 2013-11-2 18:40 编辑
回复  765058729


    我知道是程序,我说这个列宽是不是循环检测并设定值啊。
haijie1223 发表于 2013-11-2 09:38


老大想多了,我只是链接个示例程序,你的代码可以搞定了
 楼主| 发表于 2013-11-2 18:52:52 | 显示全部楼层
本帖最后由 765058729 于 2013-11-2 19:01 编辑
窗体消息模式里,GuiGetMsg 可以直接捕捉到一般鼠标按键的消息。
将9楼代码稍为转化一点就好。
user3000 发表于 2013-11-2 12:38


你这个完美了,谢谢,图片里拖动时文字居中并跟着拖动是扩展样式吗,我怎么找不到
发表于 2013-11-2 19:40:15 | 显示全部楼层
这个效果友好吗 …
我没有想到任何人性化的地方
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-21 18:53 , Processed in 0.085250 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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