Code-Beispiel
Farbauswahltemplate
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
LGPL | Volta | 16.06.2007 |
Nach dem komfortablen Dateidialog nun das Farbauswahltemplate zur Auswahl einer Farbe für Schrift, Vordergrund, Hintergrund etc.
'----------Farbauswahltemplate.bas - by Volta
#Include Once "windows.bi"
#Include Once "win\commdlg.bi"
'declare function ChooseColor alias "ChooseColorA" (byval as LPCHOOSECOLORA) as BOOL
'
'Type CHOOSECOLORA field=1
' lStructSize as DWORD
' hwndOwner as HWND
' hInstance as HWND
' rgbResult as COLORREF
' lpCustColors as COLORREF ptr
' Flags as DWORD
' lCustData as LPARAM
' lpfnHook as LPCCHOOKPROC
' lpTemplateName as LPCSTR
'End Type
'
'Flags =
' CC_RGBINIT 1 ' Vorgabe einer Standard-Farbe
' CC_FULLOPEN 2 ' Vollauswahl aller Farben anzeigen
' CC_PREVENTFULLOPEN 4 ' Deaktiviert den Button zum öffnen der Dialogbox-Erweiterung
' CC_SHOWHELP 8 ' Hilfe-Button anzeigen
' CC_ENABLEHOOK 16 ' Nachrichten können "abgefangen" werden
' CC_ENABLETEMPLATE 32 ' Dialogbox Template
' CC_ENABLETEMPLATEHANDLE 64' Benutzt Template, ignoriert aber den Template-Namen
' CC_SOLIDCOLOR 128 ' nur Grundfarben auswählbar
' CC_ANYCOLOR 256 ' Anwender kann alle Farben wählen
Function Farbwahltemplate (Wnd As HWND = Null) As Uinteger
Dim exfarbe As CHOOSECOLORA
Dim As Integer erg
Dim As Uinteger cox, co
Static iBGR(16) As Uinteger
Dim As Zstring *MAX_PATH Titel = ""
If GetConsoleTitle (@Titel, MAX_PATH) > 0 Then Wnd = FindWindow(0, Titel)
'bis 16 Farben vordefinieren (Benutzerdefinierte Farben)
iBGR(0) = Rgb(255, 0, 255)'BGR da Windows
iBGR(1) = Rgb(88, 200, 51)
iBGR(2) = Rgb(90, 90, 90)
With exfarbe
' hInstance as HINSTANCE
.hInstance = null 'Anwendungs-Instanz
' lStructSize as DWORD
.lStructSize = Sizeof(exfarbe) 'Strukturgröße
' hwndOwner as HWND
.hwndOwner = Wnd 'Aufrufendes Fenster-Handle
' hInstance as HWND
' rgbResult as COLORREF
.rgbResult = Rgb(0, 255, 0) 'Farbe voreinstellen
' lpCustColors as COLORREF ptr
.lpCustColors = @iBGR(0) 'Benutzerdefinierte Farben zuweisen
' Flags as DWORD
.Flags = CC_RGBINIT Or CC_ANYCOLOR 'Flags
' lCustData as LPARAM
' lpfnHook as LPCCHOOKPROC
' lpTemplateName as LPCSTR
End With
erg = ChooseColor(@exfarbe) 'Dialog anzeigen
If erg > 0 Then
co = exfarbe.rgbResult
'.rgbResult als BGR in RGB umwandeln
cox = ((co And &HFF0000) Shr 16) +_
((co And &HFF) Shl 16) + _
(co And &HFF00FF00)
Else
cox =0
End If
Return cox
End Function
Dim As String Titel = "Farbauswahltemplate"
Dim As Uinteger farbe
Screen 18,32
Windowtitle Titel
farbe = Farbwahltemplate (FindWindow (0, Titel))
Color farbe,0
? farbe, Hex(farbe,6)
Sleep
End'----------Farbauswahltemplate.bas - by Volta
Viel Spass damit
Volta
Zusätzliche Informationen und Funktionen |
- Das Code-Beispiel wurde am 16.06.2007 von Volta angelegt.
- Die aktuellste Version wurde am 16.06.2007 von Volta gespeichert.
|
|