找回密码
 加入
搜索
查看: 5691|回复: 19

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

[复制链接]
发表于 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
发表于 2020-7-10 11:34:59 | 显示全部楼层
添加了$WS_SIZEBOX样式的特征吧~ XP也带有立体边框。
如果不用任何边框,应该不能添加$WS_SIZEBOX样式,注册WM_NCHITTEST消息处理。记得以前论坛有相关代码~
发表于 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


 楼主| 发表于 2020-7-10 11:38:13 | 显示全部楼层

这个尺寸不可调啊
发表于 2020-7-10 11:39:28 | 显示全部楼层
haijie1223 发表于 2020-7-10 11:38
这个尺寸不可调啊

没注意看要求
 楼主| 发表于 2020-7-10 11:39:40 | 显示全部楼层
afan 发表于 2020-7-10 11:34
添加了$WS_SIZEBOX样式的特征吧~ XP也带有立体边框。
如果不用任何边框,应该不能添加$WS_SIZEBOX样式,注 ...

嗯,我搜搜看,谢谢a版提示。
 楼主| 发表于 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
发表于 2020-7-10 12:05:32 | 显示全部楼层

怎么可以拖动呢。
发表于 2020-7-10 12:29:50 | 显示全部楼层
试试这个
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 2金钱 +129 收起 理由
haijie1223 + 99 赞一个!
afan + 30 赞一个!

查看全部评分

发表于 2020-7-10 12:53:36 | 显示全部楼层
回复看看 如何实现
发表于 2020-7-10 13:36:29 | 显示全部楼层
楼主辛苦,谢谢楼主,感谢分享,楼主好人,一生平安
发表于 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

评分

参与人数 1金钱 +60 收起 理由
zghwelcome + 60 谢谢

查看全部评分

发表于 2020-7-10 15:11:49 | 显示全部楼层
凑热闹的来了,看看各位大神是怎么写的。。。。
 楼主| 发表于 2020-7-10 16:02:32 | 显示全部楼层
zghwelcome 发表于 2020-7-10 12:29
试试这个**** 本内容被作者隐藏 ****

刚开始提出这个问题时,有人说过用这个方案,被我否定了,但最终结果,还是差不多的路子
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 16:15 , Processed in 0.085839 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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