haijie1223 发表于 2020-7-10 11:23:12

如何创建一个无标题无边框但尺寸可调的窗口?[已解决]

如下代码创建出来的窗口,还带有一个蓝色的边框。请问正确的姿势如何?
#include <GUIConstantsEx.au3>
#include <windowsConstants.au3>
Opt('GUIOnEventMode', 1)
Local $MainForm = GUICreate('', 800, 600, -1, -1, BitOR($WS_POPUP, $WS_SIZEBOX))
Local $BtnExit = GUICtrlCreateButton('X', 765, 1, 30, 30)
GUICtrlSetOnEvent($BtnExit, '_Exit')
GUISetState()
While 1
WEnd
Func _Exit()
      Exit
EndFunc   ;==>_Exit
答案:https://www.autoitx.com/thread-24958-1-1.html

afan 发表于 2020-7-10 11:34:59

添加了$WS_SIZEBOX样式的特征吧~ XP也带有立体边框。
如果不用任何边框,应该不能添加$WS_SIZEBOX样式,注册WM_NCHITTEST消息处理。记得以前论坛有相关代码~

zghwelcome 发表于 2020-7-10 11:36:46

这样吗

#include <GUIConstantsEx.au3>
#include <windowsConstants.au3>
Opt('GUIOnEventMode', 1)
Local $MainForm = GUICreate('', 800, 600, -1, -1, $WS_POPUP, $WS_EX_CONTROLPARENT)
Local $BtnExit = GUICtrlCreateButton('X', 765, 1, 30, 30)
GUICtrlSetOnEvent($BtnExit, '_Exit')
GUISetState()
While 1
WEnd
Func _Exit()
      Exit
EndFunc   ;==>_Exit


haijie1223 发表于 2020-7-10 11:38:13

zghwelcome 发表于 2020-7-10 11:36
这样吗

这个尺寸不可调啊

zghwelcome 发表于 2020-7-10 11:39:28

haijie1223 发表于 2020-7-10 11:38
这个尺寸不可调啊
没注意看要求

haijie1223 发表于 2020-7-10 11:39:40

afan 发表于 2020-7-10 11:34
添加了$WS_SIZEBOX样式的特征吧~ XP也带有立体边框。
如果不用任何边框,应该不能添加$WS_SIZEBOX样式,注 ...

嗯,我搜搜看,谢谢a版提示。

haijie1223 发表于 2020-7-10 12:03:27

afan 发表于 2020-7-10 11:34
添加了$WS_SIZEBOX样式的特征吧~ XP也带有立体边框。
如果不用任何边框,应该不能添加$WS_SIZEBOX样式,注 ...

感谢a版,找到答案:https://www.autoitx.com/thread-24958-1-1.html

862228699 发表于 2020-7-10 12:05:32

zghwelcome 发表于 2020-7-10 11:36
这样吗

怎么可以拖动呢。

zghwelcome 发表于 2020-7-10 12:29:50

试试这个**** Hidden Message *****

chzj589 发表于 2020-7-10 12:53:36

回复看看 如何实现

破帽遮颜 发表于 2020-7-10 13:36:29

楼主辛苦,谢谢楼主,感谢分享,楼主好人,一生平安

afan 发表于 2020-7-10 13:38:01

zghwelcome 发表于 2020-7-10 12:29
试试这个**** 本内容被作者隐藏 ****

加了光标效果好多了~ 建议修改下,否则只要鼠标在动就会始终不停设置光标~
Func _SetCursor()
        Local $hWnd_Pos = _GetPoshWnd()
        If $hWnd_Pos <> $MainForm Then Return
        Local $iCursorID
        Local Static $iLastID
        Switch _GetBorderType($hWnd_Pos)
                Case 0
                        $iCursorID = 2
                Case 1, 2
                        $iCursorID = 13
                Case 3, 6
                        $iCursorID = 11
                Case 5, 7
                        $iCursorID = 10
                Case 4, 8
                        $iCursorID = 12
        EndSwitch
        If $iCursorID = $iLastID Then Return
        $iLastID = $iCursorID
        GUISetCursor($iCursorID, 1, $hWnd_Pos)
EndFunc   ;==>_SetCursor

floor6ggg 发表于 2020-7-10 15:11:49

凑热闹的来了,看看各位大神是怎么写的。。。。

haijie1223 发表于 2020-7-10 16:02:32

zghwelcome 发表于 2020-7-10 12:29
试试这个**** 本内容被作者隐藏 ****
刚开始提出这个问题时,有人说过用这个方案,被我否定了,但最终结果,还是差不多的路子:face (24):

xzf680 发表于 2020-7-10 19:53:03

感谢分享:face (24):
页: [1] 2
查看完整版本: 如何创建一个无标题无边框但尺寸可调的窗口?[已解决]