UDF > GUI > GuiTab >


_GUICtrlTab_Create

Cr�e un contr�le � onglet (TabControl)

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

Param�tres

$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.

Valeur de retour

Succ�s: Retourne le handle du contr�le � onglet
�chec: Retourne 0

Remarque

Cette fonction est destin�e aux utilisateurs avertis et � ceux qui veulent comprendre comment fonctionne le contr�le.

En relation

_GUICtrlTab_Destroy

Exemple

#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