Function Reference

GUICreate

GUIウィンドウを作成します。

GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

 

パラメータ

title ダイアログボックスのタイトル。
width [オプション] ウィンドウの幅。
height [オプション] ウィンドウの高さ。
left [オプション] ダイアログボックスの左端。デフォルト(-1)ではウィンドウは中央に配置されます。定義する場合はtopも定義しなければなりません。
top [オプション] ダイアログボックスの上端。デフォルト(-1)ではウィンドウは中央に配置されます。
style [オプション] ウィンドウのスタイルを定義します。GUI Control Styles Appendixを参照。
-1を使用するとデフォルトスタイルになります。デフォルトスタイルは$WS_MINIMIZEBOX、$WS_CAPTION、$WS_POPUP、$WS_SYSMENUスタイルの組み合わせです。
いくつかのスタイルは常に使用されます。$WS_MAXIMIZEBOXまたは$WS_SIZEBOX を指定すると$WS_CLIPSIBLINGSと$WS_SYSMENUが常に使用されます。
exStyle [オプション] ウィンドウの拡張スタイルを定義します。下記のExtended Style Tableを参照。-1がデフォルトです。
parent [オプション] 事前に作成された別のウィンドウのハンドル。新しいウィンドウはその子ウィンドウになります。

 

返し値

成功 ウィンドウハンドルを返します。
失敗 ウィンドウが作成できなかった場合、0を返し@errorを1に設定します。

 

注意

デフォルトではダイアログボックスはサイズ変更不可、最大化不可です。変更のためにstyleパラメータにWS_SIZEBOXまたはWS_MAXIMIZEBOXを使用することができます。
このスタイルは1つのスタイルしか定義しないので、忘れずにデフォルトのものを組み合わせて使用してください。つまりWS_SIZEBOXを定義しただけではWS_MINIMIZEBOX、WS_CAPTION、WS_POPUP、WS_SYSMENUは定義されないということです。以上を踏まえてサイズ変更可能なウィンドウを定義するもっとも良い方法はWS_OVERLAPPEDWINDOWを使用することです。
$WS_EX_MDICHILDを使用すると親ウィンドウのクライアント領域に対する相対座標でウィンドウが表示されます。$WS_EX_LAYEREDを使用すると親ウィンドウで定義された背景画像上に透明な画像を作成できます。 $WS_CLIPCHILDRENを使用するとエディットコントロールなどがあるGUIでサイズ変更時におきるちらつきを抑えることができます。
exStyleパラメータに$WS_EX_CONTROLPARENTを使用することで$WS_CAPTIONなしのGUIウィンドウをドラッグできるようになります。


デフォルトスタイルにスタイルを組み合わせるにはBitOr($GUI_SS_DEFAULT_GUI, newstyle,...)とします。
サイズ指定でのサイズはウィンドウのクライアント領域のサイズです。枠とタイトルバーによってウィンドウは指定したよりも少しだけ大きくなります。またメニューコントロールを使った場合にもウィンドウの高さは変わります。

Extended Style table
Extended Style result
$WS_EX_ACCEPTFILES GUIウィンドウ内のエディットコントロール、インプットコントロールへのドラッグアンドドロップによるファイル名入力を可能にします。コントロールにはGUICtrlSetStateを使用して$GUI_DROPACCEPTEDを設定する必要があります。他のコントロールのドラッグアンドドロップ情報は@GUI_DRAGID、@GUI_DRAGFILE、@GUIDROPIDを使用して取得できます。
$WS_EX_APPWINDOW ウィンドウが表示状態の際にタスクバー上でトップレベルになるよう設定します。
$WS_EX_CLIENTEDGE ウィンドウがくぼんだ縁のボーダーを持つように設定します。
$WS_EX_CONTEXTHELP タイトルバーにクエスチョンマークをインクルードします。WS_MAXIMIZEBOX、WS_MINIMIZEBOXと同時に使用することはできません。
$WS_EX_DLGMODALFRAME 二重のボーダーを持つウィンドウを作成しますstyleパラメーターにWS_CAPTIONを設定することによりオプションでウィンドウにタイトルバーを設定できます。
$WS_EX_MDICHILD 親ウィンドウといっしょに動く子ウィンドウを作成します(実際のMDIシミュレーションはされません)。
$WS_EX_OVERLAPPEDWINDOW WS_EX_CLIENTEDGEとWS_EX_WINDOWEDGEの組み合わせ。
$WS_EX_STATICEDGE 3Dボーダーのウィンドウを作成します。これはユーザー入力を受け付けないアイテムに使用することが意図されています。
$WS_EX_TOPMOST このスタイルを設定するとアクティブでない場合でも常にウィンドウが最前面に表示されます。
$WS_EX_TRANSPARENT 親子レベルで同レベルのウィンドウのビットがが既に描画されているためにウィンドウが透明になります。
$WS_EX_TOOLWINDOW ツールウィンドウを作成します。このウィンドウはフローティングツールバーとして使用することが意図されています。ツールウィンドウは通常のタイトルバーよりも短いタイトルバーを持っており、ウィンドウタイトルは小さいフォントを使って書かれます。ツールバーはタスクバーやダイアログボックス内には表示されずユーザーがALT+TABを押したとき表示されます。ツールウィンドウがシステムメニューを持つ場合、そのアイコンはタイトルバーには表示されませんがALT+SPACEを押すことでシステムメニューは表示されます。
$WS_EX_WINDOWEDGE ウィンドウが浮き彫りのエッジのボーダーを持つように設定します。
$WS_EX_LAYERED 影つきウィンドウを作成します。子ウィンドウには使用できません。

これらの値を使用する場合はスクリプトの冒頭に#include <WindowsConstants.au3> と書く必要があります。

注意:この関数が返すハンドルは実際のウィンドウハンドルです。従ってWinGetHandleの返し値と同じ様に使用することができます。

 

関連

GUISetParameters..., GUICtrlCreate..., GUIGetMsg, GUISwitch, GUIGetStyle, GUIDelete, WinGetHandle, GUICtrlSetDefBkColor, GUICtrlSetDefColor, GUIGetCursorInfo

 


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Example1()
Example2()

;example1
Func Example1()
    Local $msg

    GUICreate("My GUI") ; 表示時に中央に表示されるダイアログボックスを作成
    GUISetState(@SW_SHOW) ; 空のダイアログボックスを表示

    ; ダイアログが閉じられるまでGUIを実行
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>example1

; 例2
Func Example2()
    Local $gui, $background, $pic, $basti_stay, $msg
    Local $sFile = "..\GUI\logo4.gif"
   
    $gui = GUICreate("Background", 400, 100)
    ; 背景画像
    $background = GUICtrlCreatePic("..\GUI\msoobe.jpg", 0, 0, 400, 100)
       
    GUISetState(@SW_SHOW)

    ; 透明なMDI子ウィンドウ
    $pic = GUICreate("", 169, 68, 20, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
    ; 透明な画像
    $basti_stay = GUICtrlCreatePic($sFile, 0, 0, 169, 68)
    GUISetState(@SW_SHOW)

    Do
        $msg = GUIGetMsg()

    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example2