Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Hiermee kunt u een dialoogvenster voor kleurselectie opnemen in uw toepassing.
Syntaxis
class CColorDialog : public CCommonDialog
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CColorDialog::CColorDialog | Maakt een CColorDialog object. |
Openbare methoden
| Naam | Description |
|---|---|
| CColorDialog::D oModal | Hiermee wordt een kleurendialoogvenster weergegeven en kan de gebruiker een selectie maken. |
| CColorDialog::GetColor | Retourneert een COLORREF structuur die de waarden van de geselecteerde kleur bevat. |
| CColorDialog::GetSavedCustomColors | Hiermee worden aangepaste kleuren opgehaald die door de gebruiker zijn gemaakt. |
| CColorDialog::SetCurrentColor | Hiermee dwingt u de huidige kleurselectie af op de opgegeven kleur. |
Beveiligde methoden
| Naam | Description |
|---|---|
| CColorDialog::OnColorOK | Overschrijven om de kleur te valideren die in het dialoogvenster is ingevoerd. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
| CColorDialog::m_cc | Een structuur die wordt gebruikt om de instellingen van het dialoogvenster aan te passen. |
Opmerkingen
Een CColorDialog object is een dialoogvenster met een lijst met kleuren die zijn gedefinieerd voor het weergavesysteem. De gebruiker kan een bepaalde kleur selecteren of maken in de lijst, die vervolgens wordt gerapporteerd aan de toepassing wanneer het dialoogvenster wordt afgesloten.
Als u een CColorDialog object wilt maken, gebruikt u de opgegeven constructor of leidt u een nieuwe klasse af en gebruikt u uw eigen aangepaste constructor.
Zodra het dialoogvenster is samengesteld, kunt u waarden in de m_cc structuur instellen of wijzigen om de waarden van de besturingselementen van het dialoogvenster te initialiseren. De m_cc structuur is van het type CHOOSECOLOR.
Nadat u de besturingselementen van het dialoogvenster hebt geïnitialiseerd, roept u de DoModal lidfunctie aan om het dialoogvenster weer te geven en kan de gebruiker een kleur selecteren.
DoModal retourneert de selectie van de gebruiker van de knop OK (IDOK) of Annuleren (IDCANCEL).
Als DoModal IDOK wordt geretourneerd, kunt u een van CColorDialogde lidfuncties gebruiken om de informatie-invoer van de gebruiker op te halen.
U kunt de functie Windows CommDlgExtendedError gebruiken om te bepalen of er een fout is opgetreden tijdens de initialisatie van het dialoogvenster en voor meer informatie over de fout.
CColorDialog is afhankelijk van het COMMDLG.DLL-bestand dat wordt geleverd met Windows-versies 3.1 en hoger.
Als u het dialoogvenster wilt aanpassen, moet u een klasse afleiden van CColorDialog, een aangepaste dialoogvenstersjabloon opgeven en een berichtoverzicht toevoegen om de meldingsberichten van de uitgebreide besturingselementen te verwerken. Niet-verwerkte berichten moeten worden doorgegeven aan de basisklasse.
Het aanpassen van de haakfunctie is niet vereist.
Opmerking
Bij sommige installaties wordt het CColorDialog object niet weergegeven met een grijze achtergrond als u het framework hebt gebruikt om andere CDialog objecten grijs te maken.
Zie Algemene dialoogvensterklassen voor meer informatie over het gebruik CColorDialog
Overnamehiërarchie
CColorDialog
Requirements
Koptekst: afxdlgs.h
CColorDialog::CColorDialog
Maakt een CColorDialog object.
CColorDialog(
COLORREF clrInit = 0,
DWORD dwFlags = 0,
CWnd* pParentWnd = NULL);
Parameterwaarden
clrInit
De standaardkleurselectie. Als er geen waarde is opgegeven, is de standaardwaarde RGB(0,0,0) (zwart).
dwFlags
Een set vlaggen waarmee de functie en het uiterlijk van het dialoogvenster worden aangepast. Zie de STRUCTUUR CHOOSECOLOR in de Windows SDK voor meer informatie.
pParentWnd
Een aanwijzer naar het bovenliggende of eigenaarsvenster van het dialoogvenster.
Example
// Show the Color dialog with all the default settings.
CColorDialog dlg1;
dlg1.DoModal();
// Show the fully opened Color dialog with red as the selected color.
CColorDialog dlg2(RGB(255, 0, 0), CC_FULLOPEN);
dlg2.DoModal();
CColorDialog::D oModal
Roep deze functie aan om het algemene windows-kleurendialoogvenster weer te geven en de gebruiker in staat te stellen een kleur te selecteren.
virtual INT_PTR DoModal();
Retourwaarde
IDOK of IDCANCEL. Als IDCANCEL wordt geretourneerd, roept u de functie Windows CommDlgExtendedError aan om te bepalen of er een fout is opgetreden.
IDOK en IDCANCEL zijn constanten die aangeven of de gebruiker de knop OK of Annuleren heeft geselecteerd.
Opmerkingen
Als u de verschillende opties voor het kleurendialoogvenster wilt initialiseren door leden van de m_cc structuur in te stellen, moet u dit doen voordat u aanroept DoModal , maar nadat het dialoogvensterobject is samengesteld.
Na het aanroepen DoModalkunt u andere lidfuncties aanroepen om de instellingen of gegevensinvoer van de gebruiker op te halen in het dialoogvenster.
Example
Zie het voorbeeld voor CColorDialog::CColorDialog.
CColorDialog::GetColor
Roep deze functie aan nadat u hebt aangeroepen DoModal om de informatie over de kleur op te halen die de gebruiker heeft geselecteerd.
COLORREF GetColor() const;
Retourwaarde
Een COLORREF-waarde die de RGB-informatie bevat voor de kleur die is geselecteerd in het kleurendialoogvenster.
Example
// Get the selected color from the CColorDialog.
CColorDialog dlg;
if (dlg.DoModal() == IDOK)
{
COLORREF color = dlg.GetColor();
TRACE(_T("RGB value of the selected color - red = %u, ")
_T("green = %u, blue = %u\n"),
GetRValue(color), GetGValue(color), GetBValue(color));
}
CColorDialog::GetSavedCustomColors
CColorDialog met objecten kan de gebruiker, naast het kiezen van kleuren, maximaal 16 aangepaste kleuren definiëren.
static COLORREF* PASCAL GetSavedCustomColors();
Retourwaarde
Een aanwijzer naar een matrix van 16 RGB-kleurwaarden waarin aangepaste kleuren worden opgeslagen die door de gebruiker zijn gemaakt.
Opmerkingen
De GetSavedCustomColors lidfunctie biedt toegang tot deze kleuren. Deze kleuren kunnen worden opgehaald nadat DoModal IDOK retourneert.
Elk van de 16 RGB-waarden in de geretourneerde matrix wordt geïnitialiseerd naar RGB(255.255.255) (wit). De aangepaste kleuren die door de gebruiker zijn gekozen, worden alleen opgeslagen tussen dialoogvensteraanroepen binnen de toepassing. Als u deze kleuren tussen aanroepen van de toepassing wilt opslaan, moet u deze op een andere manier opslaan, zoals in een initialisatie (. INI)-bestand.
Example
// Get a pointer to an array of 16 RGB color values that stores
// custom colors created by the user from CColorDialog.
CColorDialog dlg;
if (dlg.DoModal() == IDOK)
{
COLORREF *ccolor = dlg.GetSavedCustomColors();
for (int i = 0; i < 16; i++)
{
TRACE(_T("RGB value of the selected color - red = %u, ")
_T("green = %u, blue = %u\n"),
GetRValue(ccolor[i]),
GetGValue(ccolor[i]),
GetBValue(ccolor[i]));
}
}
CColorDialog::m_cc
Een structuur van het type CHOOSECOLOR, waarvan leden de kenmerken en waarden van het dialoogvenster opslaan.
CHOOSECOLOR m_cc;
Opmerkingen
Nadat u een CColorDialog object hebt gemaakt, kunt u m_cc gebruiken om verschillende aspecten van het dialoogvenster in te stellen voordat u de functie DoModal-lid aanroept.
Example
// The code below uses CColorDialog::m_cc data member to
// customize the settings of CColorDialog. The CColorDialog will
// be shown as full open and with red as the selected color.
CColorDialog dlg;
dlg.m_cc.Flags |= CC_FULLOPEN | CC_RGBINIT;
dlg.m_cc.rgbResult = RGB(255, 0, 0);
dlg.DoModal();
CColorDialog::OnColorOK
Overschrijven om de kleur te valideren die in het dialoogvenster is ingevoerd.
virtual BOOL OnColorOK();
Retourwaarde
Niet-nul als het dialoogvenster niet mag worden gesloten; anders 0 om de kleur te accepteren die is ingevoerd.
Opmerkingen
Overschrijf deze functie alleen als u aangepaste validatie wilt opgeven van de kleur die de gebruiker selecteert in het dialoogvenster Kleur.
De gebruiker kan een kleur selecteren op een van de volgende twee methoden:
Klik op een kleur in het kleurenpalet. De RGB-waarden van de geselecteerde kleur worden vervolgens weergegeven in de juiste RGB-bewerkingsvakken.
Waarden invoeren in de RGB-bewerkingsvakken
Door overschrijven OnColorOK kunt u een kleur weigeren die de gebruiker invoert in een algemeen kleurendialoogvenster voor elke toepassingsspecifieke reden.
Normaal gesproken hoeft u deze functie niet te gebruiken omdat het framework standaardvalidatie van kleuren biedt en een berichtvak weergeeft als er een ongeldige kleur is ingevoerd.
U kunt SetCurrentColor van binnenuit OnColorOK aanroepen om een kleurselectie af te dwingen. Zodra OnColorOK de gebruiker is geactiveerd (dat wil gezegd, klikt de gebruiker op OK om de kleurwijziging te accepteren), kunt u GetColor aanroepen om de RGB-waarde van de nieuwe kleur op te halen.
Example
// Override OnColorOK to validate the color entered to the
// Red, Green, and Blue edit controls. If the color
// is BLACK (i.e. RGB(0, 0,0)), then force the current color
// selection to be the color initially selected when the
// dialog box is created. The color dialog won't close so
// user can enter a new color.
BOOL CMyColorDlg::OnColorOK()
{
// Value in Red edit control.
COLORREF clrref = GetColor();
if (RGB(0, 0, 0) == clrref)
{
AfxMessageBox(_T("BLACK is not an acceptable color. ")
_T("Please enter a color again"));
// GetColor() returns initially selected color.
SetCurrentColor(GetColor());
// Won't dismiss color dialog.
return TRUE;
}
// OK to dismiss color dialog.
return FALSE;
}
CColorDialog::SetCurrentColor
Roep deze functie aan nadat u de huidige kleurselectie hebt aangeroepen DoModal om de kleurwaarde die is opgegeven in clr af te dwingen.
void SetCurrentColor(COLORREF clr);
Parameterwaarden
Clr
Een RGB-kleurwaarde.
Opmerkingen
Deze functie wordt aangeroepen vanuit een berichtenhandler of OnColorOK. In het dialoogvenster wordt de selectie van de gebruiker automatisch bijgewerkt op basis van de waarde van de clr-parameter .
Example
Zie het voorbeeld voor CColorDialog::OnColorOK.
Zie ook
MFC-voorbeeld MDI
MFC-voorbeeldTEKENING
CCommonDialog-klasse
Hiërarchiegrafiek