找回密码
 加入
搜索
查看: 3203|回复: 7

使窗体右上角的“关闭”按钮不可用的参数是什么?

[复制链接]
发表于 2008-5-16 09:17:00 | 显示全部楼层 |阅读模式
帮助文件里没找到。自己试验了几个参数,例如 2,都只能把 最小化、最大化和关闭按钮全部隐藏,同时标题左边的图标也不显示了。只要求最小化按钮可用,最大化和关闭按钮都不可用。
请高手指教。

[ 本帖最后由 陌上风 于 2008-5-16 13:53 编辑 ]
发表于 2008-5-16 09:40:15 | 显示全部楼层
$GUI_EVENT_CLOSE 这个事件不要设置应该就可以了
 楼主| 发表于 2008-5-16 11:30:45 | 显示全部楼层
原帖由 wolfxiong 于 2008-5-16 09:40 发表
$GUI_EVENT_CLOSE 这个事件不要设置应该就可以了

我还是想 关闭 按钮不可用,或者隐藏 关闭 按钮
发表于 2008-5-16 12:24:39 | 显示全部楼层
没有办法,只要你想显示图标,那么$WS_SYSMENU风格是必须添加的,而$WS_SYSMENU就包括了图标以及关闭按钮。
而如果没有$WS_SYSMENU风格的话,不要说图标,甚至连最小化最大化按钮也看不见(注意,不是不可用,而是根本就不显现出来)
发表于 2008-5-16 12:30:14 | 显示全部楼层
GUICreate("My GUI",200,100,-1,-1,$WS_MINIMIZEBOX+$WS_SYSMENU )

这样子写,最大化按钮不可用,但关闭按钮是保留的
 楼主| 发表于 2008-5-16 13:53:04 | 显示全部楼层
只有退而求其次了
发表于 2008-5-16 15:24:23 | 显示全部楼层
api 可以实现
对自己或者其他窗口都可以
发表于 2011-11-10 12:52:11 | 显示全部楼层
本帖最后由 xiehuahere 于 2011-11-10 13:21 编辑

官网的这个帖子有详细回答。
http://www.autoitscript.com/foru ... _hl__disable++close
; Example of external program
Run("calc")
WinWait("Calculator")
$calcHwnd = WinGetHandle("Calculator")

$menu = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $calcHwnd, "bool", False)
DllCall("user32.dll", "int", "RemoveMenu", "hwnd", $menu[0] , "int", 0xF060, "int", 0x0);SC_CLOSE


; Example with own AutoIt GUI
$GUI = GuiCreate("Example")

$menu = DllCall("user32.dll", "hwnd", "GetSystemMenu", "hwnd", $GUI, "bool", False)
DllCall("user32.dll", "int", "RemoveMenu", "hwnd", $menu[0] , "int", 0xF060, "int", 0x0);SC_CLOSE

GuiSetState(@SW_SHOW)
While 1
; WE COULD ALSO CHOOSE NOT TO DO ANYTHING UPON A CLOSE EVENT
    sleep(100)
WEnd
DllCall还是很强大的,一起来学习吧:你DllCall了吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-6 03:16 , Processed in 0.072937 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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