0

以下は私のプログラムです。ここでの私の意図は、ユーザーがButtonを押した後に3 つのCheckBoxesを表示することです。-Button をクリックすると表示されますが、 CheckBoxesをクリックできません。その理由は何ですか?ok

#include <GUIConstants.au3>  
$gui = GuiCreate("Hello World", 700, 600) 
$Label_HelloWorld = GuiCtrlCreateLabel("Path", 40, 20, 300, 600)
$Button_OK = GuiCtrlCreateButton("OK", 450, 20, 50, 20)    

GuiSetState(@SW_SHOW, $gui) 
While True
    $guimsg = GuiGetMsg()
    Select
        Case $guimsg == $GUI_EVENT_CLOSE
            GuiDelete($gui)
            ExitLoop

        Case $guimsg == $Button_OK
            $Label_sub_folder1 = GuiCtrlCreateLabel("Select the subfolder", 40, 65, 300, 600) 
            $CheckBox1 = GUICtrlCreateCheckbox('functionality', 40, 85, 80, 23)
            $CheckBox2 = GUICtrlCreateCheckbox('performance', 160, 85, 80, 23)
            $CheckBox3 = GUICtrlCreateCheckbox('listening', 280, 85, 80, 23)
            Sleep(50000)
            ExitLoop

    EndSelect
WEnd
4

2 に答える 2

1

あなたのコードスタイルは混乱しています...このコードを見てみましょう:

#include <GUIConstants.au3>

$gui = GUICreate("Test")
$button = GUICtrlCreateButton("ok", 200, 10, 40, 23)
$checkbox = GUICtrlCreateCheckbox("checkbox1", 10, 10, 80, 23)
GUICtrlSetState($checkbox, $GUI_HIDE)
GUISetState(@SW_SHOW)

While True
   Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
         ExitLoop
      Case $button
         GUICtrlSetState($checkbox, $GUI_SHOW)
   EndSwitch
WEnd

どこが違うの?そのラベルのサイズは、高さがそれほど大きくありません。そして、GUI を表示する前に、必要なすべてのコントロール要素を定義しています。そして、後で表示したい要素だけを最初に非表示にしてから表示します...

したがって、主な問題は両方のステートメントのラベルの高さです。これにより、次のすべての GUI 要素をカバーするラベルが作成され、使用できなくなります。必要に応じて、ラベルやグラフィックなどのコンポーネントと一緒に使用GUICtrlSetState($background, $GUI_DISABLE)して$background、それが最上位に留まり、他の GUI 要素が適切に機能するのを妨げないようにすることができます。

于 2013-07-02T12:33:20.270 に答える