一个可以缩放的窗体,能不能控制当缩到一定大小之后就不可以缩放了呢
本帖最后由 awfymwvf 于 2011-5-11 08:35 编辑#include <GUIConstants.au3>
#include <GUIListView.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
dim $dll,$Button1,$hPic1,$hPic2,$Tu1=0,$Tu2=0,$check1
Opt("GUIOnEventMode", 1)
;OnAutoItExitRegister("Quit")
Func Button1()
AdlibUnRegister()
Exit
EndFunc
Func CLOSEClicked()
AdlibUnRegister()
Exit
EndFunc
$Form1=GUICreate ( "MYFROM", 484, 302,-1,-1,BitOR($WS_SIZEBOX,$WS_MAXIMIZEBOX,$WS_MINIMIZEBOX))
$check1=GUICtrlCreateCheckbox("列表",28,200,58,58)
GUISetState (@SW_SHOW,$Form1)
$Button1 = GUICtrlCreateButton("退出程序", 406, 206, 80,30)
GUICtrlSetOnEvent($Button1, "Button1")
;GUICtrlSetOnEvent($check1, "check1")
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; 设置窗口关闭事件
While 1
Sleep(1000)
WEnd我想让这个窗体在缩小到一定程度后就不可以再缩小了,想了好久,没有思路,望高手帮助。谢谢了 Opt("GUIOnEventMode", 1)
GUICreate("限制窗口大小示例", -1, -1, -1, -1, 0x40000)
GUISetOnEvent(-3, "GuiEvent")
GUIRegisterMsg(0x24, "WM_GETMINMAXINFO")
GUISetState()
While 1
Sleep(100)
WEnd
Func GuiEvent()
Switch @GUI_CtrlId
Case -3
GUIDelete()
Exit
EndSwitch
EndFunc ;==>GuiEvent
Func WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lparam)
Local $tBuffer = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lparam)
DllStructSetData($tBuffer, 7, 400);限制窗口的最小宽度为400
DllStructSetData($tBuffer, 8, 250);限制窗口的最小高度为600
DllStructSetData($tBuffer, 9, 600);限制窗口的最大宽度为600
DllStructSetData($tBuffer, 10, 800);限制窗口的最大宽度为800
Return "GUI_RUNDEFMSG"
EndFunc 本帖最后由 awfymwvf 于 2011-5-10 17:05 编辑
超版的代码真是太强大了。谢谢超版的关注,测试去,看在我的代码中有效吗?
再次谢谢超版。
GUISetOnEvent(-3, "GuiEvent")
这行代码中的-3是什么意思,在什么时候用-3,什么时候用-1,有没有-2呢? -3 是某个窗口被关闭的系统消息的常量
因为版主没有使用#include <GUIConstantsEx.au3>
所以直接使用的-3,否则你看到的应该是$GUI_EVENT_CLOSE
至于-2-1 你可以打开GUIConstantsEx.au3看看具体的含义,大概应该能看出来,实在看不出来就去查查别的资料把 本帖最后由 awfymwvf 于 2011-5-11 08:39 编辑
谢谢超版,谢谢LOVE7173,
还有一点不明白的就是,DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lparam) 这个创建的数据结构中,为什么要创建10个INT型?
还有就是DllStructSetData($tBuffer, 7, 531) 这行代码中,为什么在这10个数据结构中,其中的数字“7”是限制窗口的最小宽度,是什么依据呢?
ceoguang 发表于 2011-5-10 15:35 http://www.autoitx.com/images/common/back.gif
呵呵!换头像啦?
这段代码似曾相识!前辈不是一次回答这样的问题吧? 呵呵!换头像啦?
这段代码似曾相识!前辈不是一次回答这样的问题吧?
水木子 发表于 2011-5-11 08:57 http://www.autoitx.com/images/common/back.gif
是在当时的回复里直接复制过来的
回复 5# awfymwvf
WM_GETMINMAXINFO
MINMAXINFO Structure 学习代码..... 超版啊。看了你给的两个连接,没明白啊。唉。我太笨。。。
我在论坛以"缩放"为关键字,没有找到超版的回复啊。。。。。唉。。。。还是。。。。。 超版啊。看了你给的两个连接,没明白啊。唉。我太笨。。。
我在论坛以"缩放"为关键字,没有找到超版的回复啊。。。。。唉。。。。还是。。。。。 楼上TX真是强大了。。。
页:
[1]