Funktionreferenz


_GUICtrlTab_Create

Beschreibung anzeigen in

Erstellt ein Tab-Control

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

Parameter

$hWnd Handle zum Parent- oder Eigner-Fenster
$iX Horizontale Position des Controls
$iY Vertikale Position des Controls
$iWidth [optional] Breite des Controls
$iHeight [optional] Höhe des Controls
$iStyle [optional] Stile des Controls:
    $TCS_BOTTOM - Die Tabs erscheinen am unteren Rand des Controls
    $TCS_BUTTONS - Tabs erscheinen als Buttons und es wird kein Rahmen um die Anzeigefläche des Controls gezeichnet
    $TCS_FIXEDWIDTH - Alle Tabs haben die gleiche Breite
    $TCS_FLATBUTTONS - Ausgewählte Tabs sehen aus, wie wenn sie in den Hintergrund hineingedrückt wären, während die anderen Tabs auf der gleichen Ebene wie der Hintergrund erscheinen. Dieser Stil beeinflusst die tab-Controls nur zusammen mit dem TCS_BUTTONS-Stil.
    $TCS_FOCUSNEVER - Das Tab-Control erhält den Eingabefokus nicht, wenn darauf geklickt wird
    $TCS_FOCUSONBUTTONDOWN - Das Tab-Control erhält den Eingabefokus, wenn darauf geklickt wird.
    $TCS_FORCEICONLEFT - Icons werden mit der linken Kante jedes Tabs bündig gesetzt, das eine festgelegte Breite hat. Dieser Stil kann nur zusammen mit dem TCS_FIXEDWIDTH-Stil benutzt werden..
    $TCS_FORCELABELLEFT - Labels werden mit der linken Kante jedes Tabs bündig gesetzt; das heißt, die Beschriftung wird direkt rechts vom Icon gesetzt anstatt zentriert. Dieser Stil kann nur zusammen mit dem TCS_FIXEDWIDTH-Stil benutzt werden, und er beinhaltet den TCS_FORCEICONLEFT-Stil.
    $TCS_HOTTRACK - Items unter dem Mauszeiger werden automatisch hervorgehoben. Man kann prüfen, ob hot tracking aktiviert ist, indem man die SystemParametersInfo aufruft
    $TCS_MULTILINE - Bei Bedarf werden mehrere Zeilen von Tabs angezeigt, so dass alle Tabs auf einmal zu sehen sind.
    $TCS_MULTISELECT - Mehrere Tabs können ausgewählt werden, wenn beim Klicken die CTRL-Taste (Strg-Taste) gedrückt wird. Dieser Stil muss zusammen mit dem TCS_BUTTONS-Stil verwendet werden
    $TCS_OWNERDRAWFIXED - Das "parent"-Fenster ist für das Zeichnen der Tabs zuständig.
    $TCS_RAGGEDRIGHT - Tabs-Zeilen werden nicht gedehnt, damit sie die ganze Breite des Tab-Controls ausfüllen. Dieser Stil wird standardmäßig verwendet.
    $TCS_RIGHT - Die Tabs erscheinen vertikal an der rechten Seite des Controls, das den TCS_VERTICAL-Stil benutzt. Dieser Wert entspricht TCS_BOTTOM. Dieser Stil wird nicht unterstützt, falls man visuelle Stile nutzt.
    $TCS_RIGHTJUSTIFY - Die Breite jedes Tabs wird bei Bedarf vergrößert, so dass jede Zeile von Tabs die ganze Breite des Tab-Controls ausfüllt. Dieser Stil wird ignoriert, wenn nicht auch der TCS_MULTILINE-Stil verwendet wird.
    $TCS_SCROLLOPPOSITE - Nicht gebrauchte Tabs werden auf die gegenüberliegende Seite des Controls verschoben, wenn ein Tab ausgewählt wird.
    $TCS_SINGLELINE - Nur eine Zeile von Tabs wird angezeigt. Der Benutzer kann bei Bedarf scrollen, um weitere Tab zu sehen. Dieser Stil wird standardmäßig verwendet.
    $TCS_TABS - Tabs werden als Tab angezeigt, und ein Rahmen wird um die Anzeigefläche des Controls gezeichnet. Dies ist der Standard-Stil.
    $TCS_TOOLTIPS - Mit dem Tab-Control ist ein Tooltip-Control verbunden.
    $TCS_VERTICAL - Die Tabs erscheinen am linken Rand des Controls, ihr Text wird vertikal angezeigt. Dieser Stil ist nur zusammen mit dem TCS_MULTILINE-Stil einsetzbar. Um die Tabs auf der rechten Seite des Controls anzuzeigen, verwende zusätzlich den TCS_RIGHT-Stil.
    Standard: $TCS_HOTTRACK
    Erzwungen: $WS_CHILD, $WS_CLIPSIBLINGS, $WS_VISIBLE
$iExStyle [optional] erweiterte Stile des Controls:
    $TCS_EX_FLATSEPARATORS - Das Control stellt Trennzeichen zwischen den Tabitems dar
    $TCS_EX_REGISTERDROP - Das Control generiert eine $TCN_GETOBJECT Benachrichtigung um ein Fallziel abzufragen wenn ein Objekt über ein Tabitem gezogen wird.

Rückgabewert

Erfolg: Handle des Controls
Fehler: 0
@error: -1 - $hwnd ist ungültig.
2 - das $hwnd Fenster existiert nicht.
4 - das $hWnd referenzierte Fenster ist nicht im gleichen Prozess.
8 - zu viele Controls definiert.
16 - mehr als 16 Fenster wurden referenziert.

Bemerkungen

Diese Funktion ist für erfahrene Benutzer und zum erlernen der Funktion von Controls.

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlTab_Destroy

Beispiel

Beispiel : Erstellt mit der UDF

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiTab.au3>
#include <WindowsStylesConstants.au3>

Global $g_hTab

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("Tab-Control: Erstellen (v" & @AutoItVersion & ")", 450, 300, 100, 100)
    $g_hTab = _GUICtrlTab_Create($hGUI, 2, 2, 446, 266)
    _MemoMsgBoxStatus() ; Statuserstellung

    GUISetState(@SW_SHOW)

    _WM_NOTIFY_Register()

    _Memo_MemoMsgBox($MB_SYSTEMMODAL, "Information", "3 Tabs erstellen")
    ; Fügt Tabs hinzu
    _GUICtrlTab_InsertItem($g_hTab, 0, "Tab 0")
    _GUICtrlTab_InsertItem($g_hTab, 1, "Tab 1")
    _GUICtrlTab_InsertItem($g_hTab, 2, "Tab 2")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.
EndFunc   ;==>Example

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndTab = $g_hTab
    If Not IsHWnd($g_hTab) Then $hWndTab = GUICtrlGetHandle($g_hTab)

    Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    Local $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hWndTab
            Switch $iCode
                Case $NM_CLICK ; Der Benutzer hat die linke Maustaste innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Der Rückgabewert wird durch das Tab-Control ignoriert
                Case $NM_DBLCLK ; Der Benutzer einen Doppelklick mit der linken Maustaste innerhalb des Controls durchgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Gibt 1 zurück ; Nonzero falls nicht Standard
                    Return 0 ; 0 falls Standard
                Case $NM_RCLICK ; Der Benutzer hat die rechte Maustaste innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Gibt 1 zurück ; Nonzero falls nicht Standard
                    Return 0 ; 0 falls Standard
                Case $NM_RDBLCLK ; Der Benutzer einen Doppelklick mit der rechten Maustaste innerhalb des Controls durchgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Gibt 1 zurück ; Nonzero falls nicht Standard
                    Return 0 ; 0 falls Standard
                Case $NM_RELEASEDCAPTURE ; Das Control wurde durch die Maus erfasst
                    _WM_NOTIFY_DebugEvent("$NM_RELEASEDCAPTURE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Example (OutProcess) : Tab Create to an External process

#include "Extras\HelpFileInternals.au3"

#include <GuiTab.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $sFromTo
    Local $hWin = _MemoRunAU3OutProcess($sFromTo, False)
    _MemoCreateOutProcess($hWin, "SysTabControl32", 2, $sFromTo)

    _GUICtrlTab_Create($hWin, 2, 2, 446, 266)

    If @error Then _MemoMsgBox($MB_ICONERROR, "Info" & $sFromTo, "@error=" & @error & " _GUICtrlTab_Create()" & @CRLF & @TAB & "cannot be used for an external process")

    _MemoMsgBoxStatus("", -1, $hWin) ; no more action, wait GUI for closing

EndFunc   ;==>Example