Dialogboksen farge har en grunnleggende og utvidede versjon. Den grunnleggende versjonen har kontroller som viser grunnleggende og egendefinerte fargene der brukeren kan velge. Den utvidede versjonen inneholder grunnleggende kontroller og har flere kontroller som lar brukeren å opprette egendefinerte farger.
Den grunnleggende versjonen av dialogboksen farge inneholder en Definer farger . Brukeren kan klikke denne knappen for å vise den utvidede versjonen. Du kan direkte dialogboksen farge for å alltid vise dette filetternavnet ved å sette CC_FULLOPEN-flagget i flagg -medlem av CHOOSECOLOR -strukturen. Hvis du vil hindre brukeren i å opprette egendefinerte farger, kan du angi flagget CC_PREVENTFULLOPEN Hvis du vil deaktivere knappen Definer farger.
Grunnleggende fargene representerer et utvalg av fargene som er tilgjengelige på den gitte enheten. Det faktiske antallet farger som vises, bestemmes av skjermdriveren. For eksempel, en VGA-driver viser 48 farger, og en monokrom skjerm-driver viser bare 16.
Egendefinerte farger er de du angir, eller at brukeren oppretter. Når du oppretter en farge -dialogboks, må du bruke lpCustColors -medlem av CHOOSECOLOR -strukturen til å angi de opprinnelige verdiene for 16 farger. Hvis den utvidede versjonen av dialogboksen farge er åpen, kan brukeren opprette en egendefinert farge av en følgende metoder:
Hvis du vil legge til en ny farge i farger-visningen, kan brukeren klikke knappen Legg til i egendefinerte farger . Dette fører også til dialogboksen for å kopiere RGB-verdien for den nye fargen til det tilsvarende elementet i matrisen vises til i lpCustColors -medlem. Hvis du vil beholde nye egendefinerte farger mellom kall til ChooseColor, bør du tildele statisk minne for matrisen. Hvis du vil ha mer informasjon om fargemodellene RGB og HSL, kan du se Farge modeller som brukes av dialogboksen farge.