Rubrik: Windows/System | 13.07.01 |
ChooseColor-Funktion Diese Funktion ruft den Windows-Standard-Dialog zur Auswahl einer Farbe auf. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 16.084 |
Deklaration:
Declare Function ChooseColor Lib "comdlg32.dll" _ Alias "ChooseColorA" ( _ lpcc As CHOOSECOLOR_TYPE) As Long
Beschreibung:
Diese Funktion ruft den Windows-Standard-Dialog zur Auswahl einer Farbe auf.
Parameter:
lpcc | Erwartet wird eine CHOOSECOLOR_TYPE-Struktur. |
Rückgabewert:
Ist die Funktion erfolgreich wird ein Wert ungleich 0 zurückgegeben, andernfalls ist die Rückgabe 0.
Beispiel:
Private Declare Function ChooseColor_Dlg Lib "comdlg32.dll" _ Alias "ChooseColorA" ( _ lpcc As CHOOSECOLOR_TYPE) As Long Private Type CHOOSECOLOR_TYPE lStructSize As Long hwndOwner As Long hInstance As Long rgbResult As Long lpCustColors As Long flags As Long lCustData As Long lpfnHook As Long lpTemplateName As String End Type ' Anwender kann alle Farben wählen Private Const CC_ANYCOLOR = &H100 ' Nachrichten können "abgefangen" werden Private Const CC_ENABLEHOOK = &H10 ' Dialogbox Template Private Const CC_ENABLETEMPLATE = &H20 ' Benutzt Template, ignoriert aber den Template-Namen Private Const CC_ENABLETEMPLATEHANDLE = &H40 ' Vollauswahl aller Farben anzeigen Private Const CC_FULLOPEN = &H2 ' Deaktiviert den Button zum Öffnen der Dialogbox-Erweiterung Private Const CC_PREVENTFULLOPEN = &H4 ' Vorgabe einer Standard-Farbe Private Const CC_RGBINIT = &H1 ' Hilfe-Button anzeigen Private Const CC_SHOWHELP = &H8 ' nur Grundfarben auswählbar Private Const CC_SOLIDCOLOR = &H80
Private Sub Command1_Click() Dim CC_T As CHOOSECOLOR_TYPE, Retval As Long Static BDF(16) As Long ' Einige Farben vordefinieren (Benutzerdefinierte Farben) BDF(0) = RGB(255, 0, 255) BDF(1) = RGB(125, 125, 125) BDF(2) = RGB(90, 90, 90) With CC_T .lStructSize = Len(CC_T) ' Strukturgröße .hInstance = App.hInstance ' Anwendungs-Instanz .hwndOwner = Me.hWnd ' Fenster-Handle .flags = CC_RGBINIT Or CC_ANYCOLOR Or CC_FULLOPEN Or _ CC_PREVENTFULLOPEN ' Flags .rgbResult = RGB(0, 255, 0) ' Farbe voreinstellen .lpCustColors = VarPtr(BDF(0)) ' Benutzerdefinierte Farben zuweisen End With Retval = ChooseColor_Dlg(CC_T) ' Dialog anzeigen If Retval <> 0 Then Me.BackColor = CC_T.rgbResult ' gewählte Farbe als Hintergrund setzen Else MsgBox "Das Auswählen einer Farbe ist fehlgeschlagen," & _ "oder Sie haben Abbrechen gedrückt", vbCritical, "Fehler" End If End Sub