找回密码
 加入
搜索
查看: 1929|回复: 4

无标题栏窗口($WS_POPUP)移动问题

[复制链接]
发表于 2009-11-12 20:51:57 | 显示全部楼层 |阅读模式
本帖最后由 doremi 于 2009-11-13 11:46 编辑

#include <GUIConstants.au3>
#include <A3LGDIPlus.au3>

$Form1 = GUICreate("无标题栏窗口移动", 348, 195, 451, 409, $WS_POPUP)
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
   Case $GUI_EVENT_CLOSE
    Exit
EndSwitch
WEnd

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
if ($hWnd = $Form1) and ($iMsg = $WM_NCHITTEST) then Return $HTCAPTION
EndFunc

这个可以实现,但移动后,如果GUI有右键菜单功能就会失效。
有什么办法解决,或更好的处理$WS_POPUP移动问题。
望高手指点。
发表于 2009-11-12 21:17:40 | 显示全部楼层
没听说A3LGDIPlus.au3
发表于 2009-11-12 21:19:54 | 显示全部楼层
; *** ACNWrapper开始添加 ***
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; *** ACNWrapper结束添加 ***

$Form1 = GUICreate("无标题栏窗口移动", 348, 195, 451, 409, $WS_POPUP)
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
   Case $GUI_EVENT_CLOSE
    Exit
EndSwitch
WEnd

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
if ($hWnd = $Form1) and ($iMsg = $WM_NCHITTEST) then Return $HTCAPTION
EndFunc
好像没啥反应,不明白楼主所说意思
 楼主| 发表于 2009-11-12 21:50:56 | 显示全部楼层
意思是普通GUI用了$WS_POPUP样式后
窗口是被固定的,不可移动

但按上面的源码处理后可以移动带有$WS_POPUP样式窗口
但如果GUI下有GUICtrlCreateContextMenu创建的右键菜单
移动GUI后,右键就不会弹出了
没移动前可以右键弹出
 楼主| 发表于 2009-11-13 11:46:26 | 显示全部楼层
论坛找了好久已经有人提过了。
http://www.autoitx.com/forum.php ... mp;extra=page%3D145
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 15:17 , Processed in 0.077092 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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