Zeichnet ein Rahmen-Control mit dem angegebenen Typus und Stil
#include <WinAPIGdiDC.au3>
_WinAPI_DrawFrameControl ( $hDC, $tRECT, $iType, $iState )
$hDC | Handle zum Gerätekontext, in den der Rahmen gezeichnet wurde |
$tRECT | eine $tagRECT-Struktur oder ein Zeiger auf diese, welche die logischen Koordinaten des Rechtecks enthält |
$iType | Legt den Typ des zu zeichnenden Rahmens fest. Der Parameter kann einen der folgenden Werte annehmen: $DFC_BUTTON - Standard-Button $DFC_CAPTION - Titelleiste $DFC_MENU - Menüleiste $DFC_POPUPMENU - Popup-Menüeintrag $DFC_SCROLL - Scroll-Leiste |
$iState | Legt den Anfangszustand des Rahmen-Controls fest. Wenn $iType den Wert $DFC_BUTTON enthält, kann $iState einen der folgenden Werte annehmen: $DFCS_BUTTON3STATE - Three-State-Button $DFCS_BUTTONCHECK - Checkbox $DFCS_BUTTONPUSH - Pushbutton $DFCS_BUTTONRADIO - Radiobutton $DFCS_BUTTONRADIOIMAGE - Bild für Radiobutton (nichtrechteckige Buttons erfordern ein Bild) $DFCS_BUTTONRADIOMASK - Maske für Radiobutton (nichtrechteckige Buttons erfordern eine Maske) Wenn $nType den Wert $DFC_CAPTION enthält, kann $nState einen der folgenden Werte annehmen: $DFCS_CAPTIONCLOSE - Schließen-Button $DFCS_CAPTIONHELP - Hilfe-Button $DFCS_CAPTIONMAX - Maximieren-Button $DFCS_CAPTIONMIN - Minimieren-Button $DFCS_CAPTIONRESTORE - Wiederherstellen-Button Wenn $iType den Wert $DFC_MENU enthält, kann $nState eien der folgenden Werte annehmen: $DFCS_MENUARROW - Untermenü-Pfeil $DFCS_MENUARROWRIGHT - Untermenü-Pfeil (nach links zeigend). Wird für von rechts nach links kaskadierende Menüs benutzt, wenn Sprachen verwendet werden, in denen von rechts nach links geschrieben wird (z.B. Arabisch oder Hebräisch). $DFCS_MENUBULLET - Aufzählungspunkt $DFCS_MENUCHECK - Kontrollmarke Wenn $iType den Wert $DFC_SCROLL enthält, kann $nState einen der folgenden Werte annehmen: $DFCS_SCROLLCOMBOBOX - Combobox-Scroll-Leiste $DFCS_SCROLLDOWN - Abwärts-Pfeil der Scroll-Leiste $DFCS_SCROLLLEFT - Links-Pfeil der Scroll-Leiste $DFCS_SCROLLRIGHT - Rechts-Pfeil der Scroll-Leiste $DFCS_SCROLLSIZEGRIP - Größenänderungsgriff des Fensters in der unteren rechten Ecke $DFCS_SCROLLSIZEGRIPRIGHT - Größenänderungsgriff des Fensters in der unteren linken Ecke. Wird für von rechts nach links zu lesende Sprachen verwendet (z.B. Arabisch oder Hebräisch). $DFCS_SCROLLUP - Aufwärts-Pfeil der Scroll-Leiste Der folgende Stil kann verwendet werden, um das begrenzende Rechteck eines Pushbuttons festzulegen: $DFCS_ADJUSTRECT - Das begrenzende Rechteck wird so angepasst, das die umgebenden Kanten des Buttons ausgeschlossen werden Einer oder mehrere der folgenden Werte können verwendet werden, um den Status des zu zeichnenden Controls festzulegen: $DFCS_CHECKED - Der Button ist markiert $DFCS_FLAT - Der Button hat einen flachen Rand $DFCS_HOT - Der Button ist ausgewählt $DFCS_INACTIVE - Der Button ist deaktiviert (ausgegraut) $DFCS_PUSHED - Der Button ist betätigt (gedrückt) $DFCS_TRANSPARENT - Der Hintergrund bleibt unbeeinflusst. Dieses Flag kann nur mit $DFCS_MENUARROWUP oder $DFCS_MENUARROWDOWN kombiniert werden. |
Erfolg: | True |
Fehler: | False |
Oben genannte Konstanten benötigen #include <FrameConstants.au3>
Suche nach DrawFrameControl in der MSDN Bibliothek.
#include <FrameConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
Global $hGUI = GUICreate("_WinAPI_DrawFrameControl", 400, 300)
GUISetState(@SW_SHOW)
Example()
Func Example()
Local $hDC = _WinAPI_GetWindowDC($hGUI)
Local $tRect = DllStructCreate($tagRECT)
; Local $ptrRect = DllStructGetPtr($tRect)
_SetPosSize($tRect, 20, 45, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_BUTTON, $DFCS_BUTTONCHECK + $DFCS_CHECKED)
_SetPosSize($tRect, 50, 45, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_BUTTON, $DFCS_BUTTONRADIO + $DFCS_CHECKED)
_SetPosSize($tRect, 80, 40, 32, 32)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_CAPTION, $DFCS_CAPTIONCLOSE)
Local $aState[9] = [8, $DFCS_BUTTON3STATE, $DFCS_BUTTON3STATE + $DFCS_INACTIVE, $DFCS_BUTTONCHECK, $DFCS_BUTTONPUSH, $DFCS_BUTTONPUSH + $DFCS_FLAT, $DFCS_BUTTONRADIO, $DFCS_BUTTONRADIOIMAGE, $DFCS_BUTTONRADIOMASK]
For $i = 1 To $aState[0]
_SetPosSize($tRect, $i * 25, 100, 15, 15)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_BUTTON, $aState[$i])
Next
Local $aState[6] = [5, $DFCS_CAPTIONCLOSE + $DFCS_HOT, $DFCS_CAPTIonhelp + $DFCS_PUSHED, $DFCS_CAPTIONMAX, $DFCS_CAPTIONMIN, $DFCS_CAPTIONRESTORE]
For $i = 1 To $aState[0]
_SetPosSize($tRect, $i * 25, 130, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_CAPTION, $aState[$i])
Next
Local $aState[5] = [4, $DFCS_MENUARROW + $DFCS_TRANSPARENT, $DFCS_MENUARROWRIGHT, $DFCS_MENUBULLET, $DFCS_MENUCHECK]
For $i = 1 To $aState[0]
_SetPosSize($tRect, $i * 25, 160, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_MENU, $aState[$i])
Next
Local $aState[5] = [4, $DFCS_MENUARROW + $DFCS_TRANSPARENT, $DFCS_MENUARROWRIGHT, $DFCS_MENUBULLET, $DFCS_MENUCHECK]
For $i = 1 To $aState[0]
_SetPosSize($tRect, $i * 25 + 120, 160, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_POPUPMENU, $aState[$i])
Next
Local $aState[9] = [8, $DFCS_SCROLLCOMBOBOX, $DFCS_SCROLLDOWN, $DFCS_SCROLLLEFT, $DFCS_SCROLLRIGHT, $DFCS_SCROLLSIZEGRIP, $DFCS_SCROLLSIZEGRIPRIGHT, $DFCS_SCROLLUP, $DFCS_ADJUSTRECT]
For $i = 1 To $aState[0]
_SetPosSize($tRect, $i * 25, 190, 22, 22)
_WinAPI_DrawFrameControl($hDC, $tRect, $DFC_SCROLL, $aState[$i])
Next
_WinAPI_ReleaseDC($hGUI, $hDC) ; Muss nach _WinAPI_GetWindowDC() oder _WinAPI_GetDC() aufgerufen werden.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>Example
; Hilfs-Funktion zum Setzen der Position und Größe des gezeichneten Controls.
Func _SetPosSize($tRect, $iLeft, $iTop, $iWidth, $iHeight)
DllStructSetData($tRect, "Left", $iLeft)
DllStructSetData($tRect, "Top", $iTop)
DllStructSetData($tRect, "Right", $iLeft + $iWidth)
DllStructSetData($tRect, "Bottom", $iTop + $iHeight)
EndFunc ;==>_SetPosSize