Erstellt ein Tab-Control
#include <GuiTab.au3>
_GUICtrlTab_Create ( $hWnd, $iX, $iY [, $iWidth = 150 [, $iHeight = 150 [, $iStyle = 0x00000040 [, $iExStyle = 0x00000000]]]] )
| $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. |
| 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. |
Diese Funktion ist für erfahrene Benutzer und zum erlernen der Funktion von Controls.
- - - - - - - - Erklärung der Controls - - - - - - - -
#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
#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