Crée un contrôle à onglet (TabControl)
#include <GuiTab.au3>
_GUICtrlTab_Create ( $hWnd, $iX, $iY [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = 0x00000040 [, $iExStyle = 0x00000000]]]] )
$hWnd | Handle de la fenêtre parent ou propriétaire |
$iX | Position horizontale du contrôle |
$iY | Position verticale du contrôle |
$iWidth | [optionnel] Largeur du contrôle |
$iHeight | [optionnel] Hauteur du contrôle |
$iStyle | [optionnel] Styles du contrôle: $TCS_BOTTOM - Les onglets apparaissent dans le bas du contrôle $TCS_BUTTONS - Les onglets apparaissent sous forme de boutons, et aucune bordure est dessinée autour de la zone d'affichage $TCS_FIXEDWIDTH - Tous les onglets sont de la même largeur $TCS_FLATBUTTONS - Les onglets sélectionnés apparaissent comme étant en retrait par rapport à l'arrière-plan tandis que les autres onglets apparaissent comme étant dans le même plan que l'arrière-plan. Cela affecte uniquement les contrôles à onglet avec le style $TCS_BUTTONS. $TCS_FOCUSNEVER - Le contrôle ne reçoit pas le focus d'entrée lorsque vous cliquez dessus $TCS_FOCUSONBUTTONDOWN - Le contrôle reçoit le focus d'entrée lorsque vous cliquez dessus $TCS_FORCEICONLEFT - Les icônes sont alignés avec le bord gauche de chaque onglet de largeur fixe. Ce style ne peut être utilisé qu'avec le style $TCS_FIXEDWIDTH. $TCS_FORCELABELLEFT - Les étiquettes sont alignées sur le bord gauche de chaque onglet de largeur fixe. L'étiquette est affichée immédiatement à la droite de l'icône au lieu d'être centrée. Ce style ne peut être utilisé qu'avec le style $TCS_FIXEDWIDTH et il implique le style $TCS_FORCEICONLEFT. $TCS_HOTTRACK - Les éléments sous le pointeur son automatiquement mis en surbrillance. Vous pouvez vérifier si oui ou non HotTrack est activé en appelant SystemParametersInfo. $TCS_MULTILINE - Plusieurs lignes d'onglets sont affichés, si nécessaire, de sorte que tous les onglets sont visibles à la fois $TCS_MULTISELECT - Plusieurs onglets peuvent être sélectionnés en maintenant la touche CTRL enfoncée lorsque vous cliquez. Ce style doit être utilisé avec le style $TCS_BUTTONS. $TCS_OWNERDRAWFIXED - La fenêtre parente est responsable du dessin des onglets $TCS_RAGGEDRIGHT - Les rangées d'onglet ne seront pas étirées pour remplir toute la largeur du contrôle. Ce style est la valeur par défaut. $TCS_RIGHT - Les onglets apparaissent verticalement sur le côté droit du contrôle qui utilise le style $TCS_VERTICAL. Cette valeur est égale à $TCS_BOTTOM. Ce style n'est pas pris en charge si vous utilisez des styles visuels. $TCS_RIGHTJUSTIFY - La largeur de chaque onglet est augmentée, si nécessaire, de sorte que chaque rangée d'onglets remplit toute la largeur du contrôle Tab. Ce style est ignoré sauf si le style $TCS_MULTILINE est également spécifié. $TCS_SCROLLOPPOSITE - Les onglets superflus défile vers le côté opposé du contrôle lorsqu'un onglet est sélectionné $TCS_SINGLELINE - Une seule rangée d'onglet s'affiche. L'utilisateur peut faire défiler pour voir plus d'onglets, si nécessaire. Ce style est le style par défaut. $TCS_TABS - Les onglets apparaissent sous forme d'onglets, et une bordure est dessinée autour de la zone d'affichage. Ce style est le style par défaut. $TCS_TOOLTIPS - Le contrôle à onglet dispose d'un contrôle d'info-bulle qui lui est associé $TCS_VERTICAL - Les onglets apparaissent sur le côté gauche du contrôle avec le texte de l'onglet vertical. Ce style n'est valable que lorsqu'il est utilisé avec le style $TCS_MULTILINE. Pour que les onglets apparaissent sur le côté droit du contrôle, utilisez aussi le style $TCS_RIGHT. Par défaut: $TCS_HOTTRACK Forçé: $WS_CHILD, $WS_CLIPSIBLINGS $WS_VISIBLE |
$iExStyle | [optionnel] Styles étendus du contrôle: $TCS_EX_FLATSEPARATORS - Le contrôle dessinera des séparateurs entre les éléments d'un onglet $TCS_EX_REGISTERDROP - La contrôle génère un messages de notification $TCN_GETOBJECT pour demander l'objet cible où déposer lorsque l'objet est tiré sur les éléments de l'onglet. |
Succès: | Retourne le handle du contrôle à onglet |
Échec: | Retourne 0 |
Cette fonction est destinée aux utilisateurs avertis et à ceux qui veulent comprendre comment fonctionne le contrôle.
#include <GUIConstantsEx.au3> #include <GuiTab.au3> #include <WindowsConstants.au3> Global $g_hTab Example() Func Example() Local $hGUI ; Crée une GUI $hGUI = GUICreate("(UDF Created) Tab Control Create", 400, 300) $g_hTab = _GUICtrlTab_Create($hGUI, 2, 2, 396, 296) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ; Ajoute des onglets _GUICtrlTab_InsertItem($g_hTab, 0, "Tab 1") _GUICtrlTab_InsertItem($g_hTab, 1, "Tab 2") _GUICtrlTab_InsertItem($g_hTab, 2, "Tab 3") ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab $hWndTab = $g_hTab If Not IsHWnd($g_hTab) Then $hWndTab = GUICtrlGetHandle($g_hTab) $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndTab Switch $iCode Case $NM_CLICK ; L'utilisateur a cliqué le bouton gauche de la souris à l'intérieur du contrôle _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; La valeur retournée est ignorée par le contrôle à onglet Case $NM_DBLCLK ; L'utilisateur a double-cliqué le bouton gauche de la souris à l'intérieur du contrôle _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Return 1 ; non nul pour ne pas permettre le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_RCLICK ; L'utilisateur a cliqué le bouton droit de la souris à l'intérieur du contrôle _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Return 1 ; non nul pour ne pas permettre le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_RDBLCLK ; L'utilisateur a double-cliqué le bouton droit de la souris à l'intérieur du contrôle _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Return 1 ; non nul pour ne pas permettre le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_RELEASEDCAPTURE ; Le contrôle est en train de mettre à jour la capture de la souris _DebugPrint("$NM_RELEASEDCAPTURE" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur retournée EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @CRLF & _ "+======================================================" & @CRLF & _ "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _ "+======================================================" & @CRLF) EndFunc ;==>_DebugPrint