Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Kleine Helferlein

Farbauswahltemplate

Lizenz:Erster Autor:Letzte Bearbeitung:
LGPLRedakteurVolta 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 RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 16.06.2007 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen