<strong>二)按钮的控制与应用<br /></strong>按钮的控制与应用主要是用来完成一项任务或控制某一个部件的动作。<br /> 1、控制的基本方法。一般按钮使用变量来设计与控制。即:<br /><span style="color: #f73809">$OK = GUICtrlCreateButton ("按钮OK", 10,20,80,40)<br />$Cancel = GUICtrlCreateButton ("按钮Cancel", 150,20,80,40)<br /></span>按钮的控制语句应放在循环判断语句当中。即:在下列循环判断语句当中"..."中加入控制语句。<br /><span style="color: #f70909">While 1<br /> $msg = GUIGetMsg()<br />...<br />WEnd<br /></span>示例脚本如下:<br /><span style="color: #f73809">#i nclude <GUIConstants.au3><br />GUICreate ("我的图标按钮",400,200)<br />GUISetBkColor (0xE0FFFF) ; 设置自己喜欢的色彩<br />$OK = GUICtrlCreateButton ("按钮OK", 10,20,80,40)<br />$Cancel = GUICtrlCreateButton ("按钮Cancel", 150,20,80,40)<br />GUISetState(@SW_SHOW)<br />While 1<br /> $msg = GUIGetMsg()<br /> Select<br /> Case $msg = $ok<br /> MsgBox(0, "按钮的控制", "控制成功!")<br /> Case $msg = $GUI_EVENT_CLOSE or $msg = $Cancel<br /> MsgBox(0, "按钮的控制", "控制结束! 按确定或关闭窗口将自动退出程序...!")<br /> ExitLoop<br /> EndSelect<br />WEnd<br /></span> 2、循环判断的设置。一般循环判断语句在While...Wend中通常用以下两种语句。即:Select...Case...EndSelect与If <expression> Then(或If...ElseIf...Else...EndIf)(详见帮助文件)。两种判断语句示例脚本:<br /> 第一种:<br /><span style="color: #ff0000">While 1<br /> $msg = GUIGetMsg()<br /> Select<br /> Case $msg = $ok1<br /> MsgBox(0, "按钮的控制1", "控制1!")<br /> Case $msg = $ok2<br /> MsgBox(0, "按钮的控制", "控制2!")<br /> Case $msg = $ok3<br /> MsgBox(0, "按钮的控制", "控制3!")<br /> Case $msg = $ok4<br /> MsgBox(0, "按钮的控制", "控制4!")<br />... <br /> Case $msg = $GUI_EVENT_CLOSE or $msg = $Cancel<br /> MsgBox(0, "按钮的控制", "控制结束! ")<br /> ExitLoop<br /> EndSelect<br />WEnd<br /></span>这一种判断语句可以设置无限的按钮,只要你的窗口能放下无限的按钮。每一个Case只能控制或完成一项任务,也就是一事一办。当然在Case里面还可以增加下一级或更多级的判断。如增加If <expression> Then语句,也可以增加Select...Case...EndSelect语句(这种情况较为复杂,新手不宜)。<br /> 第二种:<br /><span style="color: #ff0000">While 1<br />$msg = GUIGetMsg()<br /> if $msg = $exit Then <br /> MsgBox(0, "退出", "退出控制吗!") <br /> Exit<br /> EndIf<br />if $msg = $ok1 Then<br /> $Box = MsgBox(0, "按钮的控制1", "控制1!")<br /> if $Box = 1 Then RUN("Setup1.exe")<br /> Exit<br />EndIf<br />if $msg = $ok2 Then<br /> $Box2 = MsgBox(0, "按钮的控制2", "控制2!")<br /> if $Box2 = 1 Then RUN("Setup2.exe")<br /> Exit<br />EndIf<br />if $msg = $ok3 Then<br /> $Box3 = MsgBox(0, "按钮的控制3", "控制3!")<br /> if $Box3 = 1 Then <br /> RUN("Setup3.exe")<br /> EndIf<br />EndIf<br />... <br />WEnd<br /></span> 从示例看,这一种判断语句也同样可以设置无限的按钮,只要你的窗口能放下无限的按钮。每一个If <expression> Then也同样只能控制或完成一项任务。在If <expression> Then里面也可以增加下一级的判断。如增加Select...Case...EndSelect。看示例:<br /><span style="color: #ff0000">While 1<br />$msg = GUIGetMsg()<br /> if $msg = $exit Then <br /> MsgBox(0, "退出", "退出控制吗!") <br /> Exit<br /> EndIf<br />if $msg = $ok Then<br /> Select<br /> Case $msg = $ok1<br /> MsgBox(0, "按钮的控制1", "控制1!")<br /> Case $msg = $ok2<br /> MsgBox(0, "按钮的控制", "控制2!")<br /> Case $msg = $ok3<br /> MsgBox(0, "按钮的控制", "控制3!")<br /> Case $msg = $ok4<br /> MsgBox(0, "按钮的控制", "控制4!")<br /> ... <br /> Case $msg = $GUI_EVENT_CLOSE or $msg = $Cancel<br /> MsgBox(0, "按钮的控制", "控制结束! ")<br /> ExitLoop<br /> EndSelect<br />EndIf<br />WEnd<br /></span> 3、注意的事项。在运用判断语句时,无论是用Select...Case...EndSelect语句,还是用If <expression> Then语句时,都要注意:设计任务或动作的脚本最好是在判断语句中一次运行完。另外,关闭窗口和退出的语句都不要忘记加上。如($msg = $GUI_EVENT_CLOSE;$msg = $exit)。特别是在多级判断语句里,不要忘记退出循环的语句。如(ExitLoop;EndSelect;EndIf;WEnd)。<br /> 关于GUI设计中的其他控件的制作与应用将在第三讲中详细解答。<br /> |