Function Reference

_GUICtrlTab_Create

タブコントロールを作成します。

#Include <GuiTab.au3>
_GUICtrlTab_Create($hWnd, $iX, $iY[, $iWidth=150[, $iHeight=150[, $iStyle=0x00000040[, $iExStyle=0x00000000]]]])

 

パラメータ

$hWnd 親ウィンドウまたはオーナーウィンドウのハンドル
$iX コントロールの水平位置
$iY コントロールの垂直位置
$iWidth [オプション]コントロールの幅
$iHeight [オプション]コントロールの高さ
$iStyle [オプション]コントロールのスタイル:
$TCS_BOTTOM - タブがコントロール下部に表示されます。
$TCS_BUTTONS - タブがボタン上に表示され、表示領域の周りには枠が描画されません。
$TCS_FIXEDWIDTH - 全てのタブが同じ幅になります。
$TCS_FLATBUTTONS - 他のタブが背景と同じ面に描画されるのにに対して、選択タブは背景から浮き出て表示されます。
コントロールに$TCS_BUTTONSスタイルが設定されている場合のみ有効です。
$TCS_FOCUSNEVER - クリック時にコントロールに入力フォーカスを合わせません。
$TCS_FOCUSONBUTTONDOWN - クリック時にコントロールに入力フォーカスを合わせます。
$TCS_FORCEICONLEFT - 各固定幅タブの左縁にアイコンを配置します。
このスタイルは$TCS_FIXEDWIDTHスタイルが設定されている場合のみ使用できます。
$TCS_FORCELABELLEFT - 各固定幅タブの左縁にラベルを配置します。
ラベルは中央寄せされる代わりにアイコンの右横に表示されます。
このスタイルは$TCS_FIXEDWIDTHスタイルの使用を必要とし、これは$TCS_FORCEICONLEFTスタイルを意味します。
$TCS_HOTTRACK - マウスポインタ下のアイテムが自動でハイライトされます。
SystemParametersInfoを呼ぶことでホットトラッキングの有効/無効を調べることができます。
$TCS_MULTILINE - 一度で表示されるように必要な場合、タブが複数行で表示されます。
$TCS_MULTISELECT - クリック時にCTRLキーを押しておくことで複数タブを選択できます。
このスタイルは$TCS_BUTTONSスタイルの使用を必要とします。
$TCS_OWNERDRAWFIXED - 親ウィンドウがタブの描画をおこないます。
$TCS_RAGGEDRIGHT - タブの行がコントロールの幅全体を占めて広がらないようにします。このスタイルはデフォルトです。
$TCS_RIGHT - タブが$TCS_VERTICALスタイルを使用しているコントロールの右縁に垂直に表示されます。
この値は$TCS_BOTTOMと同じです。このスタイルはビジュアルスタイルを使用している場合、サポートされません。
$TCS_RIGHTJUSTIFY - 各タブ行がタブコントロールの幅全体を埋めるように必要な場合、各タブの幅が増えます。
このスタイルは$TCS_MULTILINEスタイルが指定されていない場合、無視されます。
$TCS_SCROLLOPPOSITE - タブが選択された際に不必要なタブがコントロールの反対側にスクロールします。
$TCS_SINGLELINE - タブ行が1行だけ表示されます。
必要な場合、ユーザーはスクロールして他のタブを見ます。このスタイルはデフォルトです。
$TCS_TABS - タブはタブとして表示され、表示領域の周りには枠が描画されます。このスタイルはデフォルトです。
$TCS_TOOLTIPS - タブコントロールは関連付けられたツールチップコントロールを持ちます。
$TCS_VERTICAL - タブがコントロールの左側に垂直のタブテキストとともに表示されます。
このスタイルは$TCS_MULTILINEスタイルを使用している場合のみ有効です。
コントロールの右側にタブを表示するには$TCS_RIGHTスタイルとともに使用してください。
デフォルト: $TCS_HOTTRACK
強制: $WS_CHILD、 $WS_CLIPSIBLINGS、 $WS_VISIBLE
$iExStyle [オプション]コントロールの拡張スタイル:
$TCS_EX_FLATSEPARATORS - コントロールはタブアイテムの間にセパレータを描画します
$TCS_EX_REGISTERDROP - コントロールはオブジェクトがタブアイテム上にドラッグされた際に
ドロップターゲットオブジェクトをリクエストするための$TCN_GETOBJECT通知メッセージを発生します

 

返し値

成功: コントロールのハンドル
失敗: 0

 

注意

この関数は上級者、コントロール動作学習用です。

 

関連

_GUICtrlTab_Destroy

 


#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiTab.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

$Debug_TAB = False ; 関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用

Global $hTab

_Main()

Func _Main()
    Local $hGUI

    ; GUIを作成
    $hGUI = GUICreate("(UDF Created) Tab Control Create", 400, 300)
    $hTab = _GUICtrlTab_Create($hGUI, 2, 2, 396, 296)
    GUISetState()

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    ; タブを追加
    _GUICtrlTab_InsertItem($hTab, 0, "Tab 1")
    _GUICtrlTab_InsertItem($hTab, 1, "Tab 2")
    _GUICtrlTab_InsertItem($hTab, 2, "Tab 3")
    ; ユーザーが終了するまでループ
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab
    $hWndTab = $hTab
    If Not IsHWnd($hTab) Then $hWndTab = GUICtrlGetHandle($hTab)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hWndTab
            Switch $iCode
                Case $NM_CLICK ; ユーザーがコントロールでマウス左ボタンをクリック
                    _DebugPrint("$NM_CLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値はタブコントロールから無視される
                Case $NM_DBLCLK ; ユーザーがコントロールでマウス左ボタンをダブルクリック
                    _DebugPrint("$NM_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
;~                  Return 1 ; デフォルト処理を許可しない場合、非ゼロ
                    Return 0 ; デフォルト処理を許可する場合、ゼロ
                Case $NM_RCLICK ; ユーザーがコントロールでマウス右ボタンをクリック
                    _DebugPrint("$NM_RCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
;~                  Return 1 ; デフォルト処理を許可しない場合、非ゼロ
                    Return 0 ; デフォルト処理を許可する場合、ゼロ
                Case $NM_RDBLCLK ; ユーザーがコントロールでマウス右ボタンをダブルクリック
                    _DebugPrint("$NM_RDBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
;~                  Return 1 ; デフォルト処理を許可しない場合、非ゼロ
                    Return 0 ; デフォルト処理を許可する場合、ゼロ
                Case $NM_RELEASEDCAPTURE ; コントロールはマウスキャプチャをリリース
                    _DebugPrint("$NM_RELEASEDCAPTURE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Func _DebugPrint($s_text, $line = @ScriptLineNumber)
    ConsoleWrite( _
            "!===========================================================" & @LF & _
            "+======================================================" & @LF & _
            "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
            "+======================================================" & @LF)
EndFunc   ;==>_DebugPrint