陌上风 发表于 2008-5-16 09:17:00

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

帮助文件里没找到。自己试验了几个参数,例如 2,都只能把 最小化、最大化和关闭按钮全部隐藏,同时标题左边的图标也不显示了。只要求最小化按钮可用,最大化和关闭按钮都不可用。
请高手指教。

[ 本帖最后由 陌上风 于 2008-5-16 13:53 编辑 ]

wolfxiong 发表于 2008-5-16 09:40:15

$GUI_EVENT_CLOSE 这个事件不要设置应该就可以了

陌上风 发表于 2008-5-16 11:30:45

原帖由 wolfxiong 于 2008-5-16 09:40 发表 http://www.autoitx.com/images/common/back.gif
$GUI_EVENT_CLOSE 这个事件不要设置应该就可以了
我还是想 关闭 按钮不可用,或者隐藏 关闭 按钮

dingamao 发表于 2008-5-16 12:24:39

没有办法,只要你想显示图标,那么$WS_SYSMENU风格是必须添加的,而$WS_SYSMENU就包括了图标以及关闭按钮。
而如果没有$WS_SYSMENU风格的话,不要说图标,甚至连最小化最大化按钮也看不见(注意,不是不可用,而是根本就不显现出来)

dingamao 发表于 2008-5-16 12:30:14

GUICreate("My GUI",200,100,-1,-1,$WS_MINIMIZEBOX+$WS_SYSMENU )

这样子写,最大化按钮不可用,但关闭按钮是保留的

陌上风 发表于 2008-5-16 13:53:04

只有退而求其次了

gooker 发表于 2008-5-16 15:24:23

api 可以实现
对自己或者其他窗口都可以
:face (1):

xiehuahere 发表于 2011-11-10 12:52:11

本帖最后由 xiehuahere 于 2011-11-10 13:21 编辑

官网的这个帖子有详细回答。
http://www.autoitscript.com/forum/topic/9486-disabling-x-close-button/page__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 , "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 , "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)
WEndDllCall还是很强大的,一起来学习吧:你DllCall了吗?
页: [1]
查看完整版本: 使窗体右上角的“关闭”按钮不可用的参数是什么?