happytc 发表于 2011-5-24 09:47:54

绘制的没有标题栏的窗口,怎么拖动窗口?

如:$main = GUICreate("Test",500,100,-1,-1,$WS_POPUP + $WS_SIZEBOX)

怎么让鼠标在这个窗口的任何地方按住左键都可以拖动这个窗口?
GUICtrlCreateLabel("Move",28,28,32,20,$SS_BLACKFRAME,$GUI_WS_EX_PARENTDRAG)

加$GUI_WS_EX_PARENTDRAG时可以拖动,但这个样式只能给Label或图片加呀,也就是只能点住这个Label才能拖动。

3mile 发表于 2011-5-24 10:24:52

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <winapiex.au3>
#include <Process.au3>
Opt('MustDeclareVars', 1)
Global $gui
Example()

Func Example()
        Local $checkCN, $msg
        $gui=GUICreate("My GUI Checkbox",-1,-1,-1,-1,$WS_POPUP + $WS_SIZEBOX)
        $checkCN = GUICtrlCreateGroup ("CHECKBOX 1", 10, 10, 200, 60, 0x0009)
        GUISetState()       ; will display andialog box with 1 checkbox
        GUIRegisterMsg(0x0084, "WM_NCHITTEST")
        While 1
                $msg = GUIGetMsg()
               
                Switch $msg
                        case -3
                                Exit
                        Case $checkCN
                                msgbox(0,0,"ok")
                EndSwitch
        WEnd
EndFunc   ;==>Example
Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
        If ($hWnd = $gui) and ($iMsg = $WM_NCHITTEST) then Return $HTCAPTION;
EndFunc

seniors 发表于 2011-5-24 15:39:49

顺便问一下 如果还要实现右键菜单,双击出主窗口,是不是要注册WM_NCRBUTTONUP和WM_NCLBUTTONDBLCLK

happytc 发表于 2011-5-25 23:04:37

回复 2# 3mile


    谢了,粗粗试了下,不错。
不过,好象又有点问题了,就是$WS_SIZEBOX不管用了,也就是不能拖窗口大小了

3mile 发表于 2011-5-26 10:54:08

本帖最后由 3mile 于 2011-5-26 11:11 编辑

回复3mile


    谢了,粗粗试了下,不错。
不过,好象又有点问题了,就是$WS_SIZEBOX不管用了,也就 ...
happytc 发表于 2011-5-25 23:04 http://www.autoitx.com/images/common/back.gif
请移步:http://www.autoitx.com/thread-24958-1-1.html
页: [1]
查看完整版本: 绘制的没有标题栏的窗口,怎么拖动窗口?