找回密码  加入

AUTOIT CN

搜索
楼主: xzh531

[皮肤] 如何实现,窗口标题颜色一样,保留 最小化和关闭按钮,窗口可以拖动。(已经解决)

[复制链接]
发表于 2016-12-28 15:51:28 | 显示全部楼层
回复  xzh531
chzj589 发表于 2016-12-28 15:34


本帖子中包含更多资源

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

x
发表于 2016-12-28 16:10:19 | 显示全部楼层
回复  chzj589


    除了字符,显示背景图片,如果背景不加图片就可以,我记得他们好像是通过DLLCALL来 ...
xzh531 发表于 2016-12-28 15:26

这样应该可以,你试试
[au3]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WindowsConstants.au3>
Global $SS_CENTER, $SS_CENTERIMAGE
$Form1 = GUICreate("Form1", 633, 444, 192, 124, BitOR($WS_SYSMENU, $WS_POPUP, $DS_MODALFRAME))
$BACKAC = GUICtrlCreatePic(@ScriptDir & "\SpxImage2.jpg", 0, 0, 633, 444)
GUICtrlSetState(-1, $GUI_DISABLE)
$Labela = GUICtrlCreateLabel("", 2, 0, 566, 30, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0x003300)
GUICtrlSetFont(-1, 14, 600, 0, 'Verdana')
$Labelb = GUICtrlCreateLabel('×', 598, -7, 32, 37)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 24, 400, 0, 'Verdana')
GUICtrlSetOnEvent($Labelb, "_Form1Close")
GUICtrlSetCursor($Labelb, "SIZEALL");鼠标指针
$Labelb2 = GUICtrlCreateLabel('-', 566, -7, 32, 37);, $SS_CENTER)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 24, 400, 0, 'Verdana')
GUICtrlSetCursor($Labelb2, "SIZEALL") ;鼠标指针
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Labelb
                        Exit
                Case $Labelb2
                        btnMinClick()
        EndSwitch
WEnd
Func btnMinClick();窗口缩小任务栏
        WinSetState($Form1, "", @SW_MINIMIZE)
EndFunc   ;==>btnMinClick
[/au3]
 楼主| 发表于 2016-12-28 16:45:16 | 显示全部楼层
回复 17# chzj589


    是的,可以了,你是通过按labela来移动窗口,能通过mouse,在form1随便一个地方都可以移动窗口吗?
发表于 2016-12-28 17:30:43 | 显示全部楼层
回复  chzj589


    是的,可以了,你是通过按labela来移动窗口,能通过mouse,在form1随便一个地方都 ...
xzh531 发表于 2016-12-28 16:45

把$Labela设置为窗口的坐标,
[au3]
$Form1 = GUICreate("Form1", 633, 444, 192, 124, BitOR($WS_SYSMENU, $WS_POPUP, $DS_MODALFRAME))
$BACKAC = GUICtrlCreatePic(@ScriptDir & "\SpxImage2.jpg", 0, 0, 633, 444)
GUICtrlSetState(-1, $GUI_DISABLE)
$Labelb = GUICtrlCreateLabel('×', 598, -7, 32, 37)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 24, 400, 0, 'Verdana')
GUICtrlSetCursor($Labelb, "SIZEALL");鼠标指针
$Labelb2 = GUICtrlCreateLabel('-', 566, -7, 32, 37);, $SS_CENTER)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 24, 400, 0, 'Verdana')
GUICtrlSetCursor($Labelb2, "SIZEALL") ;鼠标指针
$Labela = GUICtrlCreateLabel("", 2, 0, 633, 444, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, 0x003300)
GUICtrlSetFont(-1, 14, 600, 0, 'Verdana')
GUISetState(@SW_SHOW)
[/au3]
这样鼠标就随便一个地方都可以移动窗口
 楼主| 发表于 2016-12-29 09:09:25 | 显示全部楼层
回复 19# chzj589


    你这$Labela全档住了,添加其他控件还有用吗?
发表于 2016-12-29 11:01:11 | 显示全部楼层
本帖最后由 chzj589 于 2016-12-29 11:41 编辑
回复  chzj589


    你这$Labela全档住了,添加其他控件还有用吗?
xzh531 发表于 2016-12-29 09:09

你说呢?



本帖子中包含更多资源

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

x
 楼主| 发表于 2016-12-29 15:24:17 | 显示全部楼层
回复 21# chzj589


    你最后那代码,
$Labela = GUICtrlCreateLabel("", 2, 0, 633, 444, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
这个label整个窗口那么大,可以点任何地方拖动,但就是添加 其他控件都给档住了。
发表于 2016-12-29 16:07:47 | 显示全部楼层
回复 22# xzh531
我上面的那两图为什么没被
$Labela = GUICtrlCreateLabel("", 2, 0, 633, 444, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)档住了,就是最后那代码,
动点脑筋?
发表于 2016-12-29 16:11:47 | 显示全部楼层
回复 23# chzj589

关闭与缩小控件就没有挡住,那其它控件会被挡住吗?想想为什么
发表于 2016-12-30 07:33:04 | 显示全部楼层
这么好的源码要多多学习
发表于 2016-12-31 17:45:01 | 显示全部楼层
label实现,如图

本帖子中包含更多资源

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

x
发表于 2017-1-3 22:27:19 | 显示全部楼层
代码确实能够用得着,继续关注。
 楼主| 发表于 2017-1-6 11:18:01 | 显示全部楼层
回复 24# chzj589

我要的效果就是这样,随便点那里都可以拖动窗口。一行代码搞定了

    #include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global Const $SC_MOVE = 0xF010
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 604, 365, -1, -1,BitOR($WS_SYSMENU, $WS_POPUP))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $GUI_EVENT_PRIMARYDOWN
                        _SendMessage($Form1, $WM_SYSCOMMAND, $SC_MOVE +
$HTCAPTION, 0)
        EndSwitch
WEnd
发表于 2017-1-6 12:03:46 | 显示全部楼层
回复 28# xzh531

不错!
但要改为事件模式好象改不了
 楼主| 发表于 2017-1-7 10:03:40 | 显示全部楼层
回复 29# chzj589


    改什么事件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2018-12-16 03:37 , Processed in 0.096085 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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