התאמה אישית של תיבת הדו-שיח צבעים

כדי להתאים אישית תיבת הדו-שיח צבע , באפשרותך להשתמש בכל אחת מהשיטות הבאות:

באפשרותך לשנות את המראה ואת אופן הפעולה של תיבת הדו-שיח צבע על-ידי הגדרת דגלים החבר בדגלים של מבנה CHOOSECOLOR . לדוגמה, באפשרותך להגדיר את הדגל CC_SOLIDCOLOR לכוון את תיבת הדו-שיח כדי להציג רק בצבעים מלאים. כדי לגרום תיבת הדו-שיח בתחילה לבחור צבע שאינו שחור, להגדיר את הדגל CC_RGBINIT וציין צבע חבר rgbResult.

באפשרותך לספק תבנית מותאמת אישית עבור תיבת הדו-שיח צבע , לדוגמה, אם ברצונך לכלול פקדים נוספים ייחודיות ליישום שלך. הפונקציה ChooseColor משתמשת התבנית המותאמת אישית שלך במקום תבנית ברירת המחדל.

    כדי לספק תבנית מותאמת אישית עבור תיבת הדו-שיח צבע
  1. צור תבנית מותאמת אישית על-ידי שינוי תבנית ברירת המחדל שצוין בצבע.קובץ צבע. מזהי שליטה בהן נעשה שימוש בתבנית הדו-שיח צבע ברירת המחדל מוגדרים ב- COLORDLG.קובץ h.
  2. להשתמש במבנה CHOOSECOLOR כדי לאפשר את התבנית כדלקמן:

באפשרותך לספק שגרה הוו CCHookProc עבור תיבת הדו-שיח צבע . ההליך הוו ניתן לעבד הודעות שנשלחו אל תיבת הדו-שיח. הוא גם להשתמש הודעות רשום כדי לפקח על אופן הפעולה של תיבת הדו-שיח. אם אתה משתמש בתבנית מותאמת אישית כדי להגדיר פקדים נוספים, עליך לספק שגרה הוו לעבד קלט עבור הפקדים.

    כדי לאפשר שגרה הוו עבור תיבת הדו-שיח צבע
  1. להגדיר את הדגל CC_ENABLEHOOK חבר בדגלים של מבנה CHOOSECOLOR.
  2. ציין את הכתובת של ההליך הוו חבר lpfnHook.

לאחר עיבוד הודעה WM_INITDIALOG שלה, הפרוצדורה של תיבת הדו-שיח שולחת הודעה WM_INITDIALOG להליך הוו. הפרמטר lParam של הודעה זו הוא מצביע למבנה CHOOSECOLOR המשמש לאתחול בתיבת הדו-שיח.

תיבת הדו-שיח שליחת ההודעה רשום COLOROKSTRING להליך הוו כאשר המשתמש לוחץ על לחצן אישור . ההליך הוו ניתן לדחות את הצבע שנבחר, לכפות את תיבת הדו-שיח תישאר פתוחה על-ידי החזרת אפס כאשר הוא מקבל הודעה זו. ההליך הוו לכפות את תיבת הדו-שיח כדי לבחור צבע מסוים על-ידי שליחת ההודעה רשום SETRGBSTRING בתיבת הדו-שיח. כדי להשתמש בהודעות אלה רשומים, חייבת לעבור קבועים COLOROKSTRING ו- SETRGBSTRING לפונקציה RegisterWindowMessage כדי לקבל מזהה ההודעה. לאחר מכן להשתמש המזהה כדי לזהות ולעבד הודעות שנשלחו מתוך תיבת הדו-שיח, או לשלוח הודעות אל תיבת הדו-שיח.