タブコントロールを作成します。
#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