• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

AutoIt3(au3)源码-分离窗体演示

AutoIT3 奇跡の海 1年前 (2017-11-12) 546次浏览 已收录 0个评论 扫描二维码

代码简介

AutoIt3(au3)源码-分离窗体演示
分离窗体演示,可以最大化

AU3源码

#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <GUITreeView.au3>
#include <GuiListView.au3>


$hGui = GUICreate("分离窗体演示", 600, 400, -1, -1, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
$nTreeView = GUICtrlCreateTreeView(0, 4, 200, 372, -1, $WS_EX_CLIENTEDGE)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH)
GUICtrlSetState(-1, $GUI_FOCUS)
$GeneralItem = GUICtrlCreateTreeViewItem("总体", $nTreeView)
$Item1 = GUICtrlCreateTreeViewItem("项目 1", $GeneralItem)
$Item2 = GUICtrlCreateTreeViewItem("项目 2", $GeneralItem)
$Item3 = GUICtrlCreateTreeViewItem("项目 3", $nTreeView)
GUICtrlSetState($GeneralItem, BitOR($GUI_EXPAND, $GUI_DEFBUTTON))
$nListView = GUICtrlCreateListView("名称|大小|类型|修改时间", 204, 4, 394, 372)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM)
;设置控件的大小调整方式: 左边             右边              上方           底部 
GUICtrlSendMsg(-1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES);向ListView 控件发送消息,使其有一行一行的效果
$nSplitter = GUICtrlCreateLabel("", 200, 29, 4, 372);这个就是中间那一条分割线
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH)
;设置控件的大小调整方式: 左边             上方              底部           宽度不变 
GUICtrlSetCursor(-1, 13);设置Label控件的光标形状为:SIZEWE (水平调整)
GUISetState()
$savex = 200;用来记录Label控件的位置(也就是中间的分割线)
$pressed = 0;用来检测有没有按下Label控件


While 1
        $nMsg = GUIGetMsg()
        $arInfo = GUIGetCursorInfo()
        ;获取(相对于 GUI 窗口的)鼠标位置,返回值如下


;~      $arInfo[0] = X 坐标 (水平轴) 


;~      $arInfo[1] = Y 坐标 (垂直轴) 


;~      $arInfo[2] = 鼠标左键被按下 (1 为按下, 0 为未按下) 


        If $pressed = 1 And $arInfo[2] = 0 Then $pressed = 0;当Label被按下之后放开鼠标则设置Label为未被按


        If $pressed = 1 And $arInfo[2] = 1 Then


                $arPos = WinGetPos($hGui);获取窗口宽度,$arPos[2]


                If $arInfo[0] > 100 And $arInfo[0] < $arPos[2] - 100 Then;鼠标相对窗口X坐标 > 100 并且 鼠标相对窗口X坐标 < 窗口宽度-100


                        If $arInfo[0] <> $savex Then


                                ControlMove($hGui, "", $nSplitter, $arInfo[0] - 2, 29);将Label控件移动到鼠标的X位置-2


                                ControlMove($hGui, "", $nTreeView, 0, 4, $arInfo[0] - 2);将TreeView控件的宽度调整到鼠标的X位置-2


                                ControlMove($hGui, "", $nListView, $arInfo[0] + 2, 4, $arPos[2] - $arInfo[0] - 12) ;数值 12 需要耐心调整,要想获得精确值,请参考 GetSystemMetrics API 函数。


                                $savex = $arInfo[0];记录当前Label控件的位置


                        EndIf


                EndIf


        EndIf


        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        ExitLoop
                Case $nSplitter;当Label被按下时(也就是中间那一条空白的地方)
                        $pressed = 1
        EndSwitch
WEnd


版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->AutoIt3(au3)源码-分离窗体演示!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址