באפשרותך להתאים אישית תיבת דו-שיח של Explorer בסגנון פתיחה או שמירה בשם על-ידי מתן שגרה הוו, תבנית מותאמת אישית, או את שניהם. אם תספק שגרה הוו עבור תיבת הדו-שיח בסגנון Explorer, המערכת יוצרת תיבת דו-שיח בה הוא צאצא של תיבת הדו-שיח המשמשת כברירת מחדל. ההליך הוו מתנהג הפרוצדורה תיבת דו-שיח עבור תיבת הדו-שיח של הילד. תיבת דו-שיח זו הילד מבוססת על תבנית מותאמת אישית, או על תבנית ברירת מחדל אם לא מסופק. לקבלת מידע נוסף, ראה תבניות מותאמות אישית של Explorer בסגנון.
כדי לאפשר שגרה הוו עבור תיבת הדו-שיח בסגנון Explorer פתיחה או שמירה בשם , תשתמש במבנה הפרמטר OPENFILENAME בעת יצירת תיבת הדו-שיח. הגדרת דגלים OFN_ENABLEHOOK ו- OFN_EXPLORER חבר דגלים , ציין את הכתובת של פרוצדורת hook OFNHookProc חבר lpfnHook . אם מופיע ההליך הוו להשמיט את הדגל OFN_EXPLORER, עליך להשתמש פרוצדורת hook OFNHookProcOldStyle ותקבל בסגנון הישן-ממשק המשתמש. לקבלת מידע נוסף, ראה התאמה אישית של תיבות דו-שיח בסגנון הישן.
פרוצדורת hook בסגנון Explorer מקבל מגוון של הודעות כאשר תיבת הדו-שיח פתוחה. אלה כוללות את הפעולות הבאות:
בנוסף, יש סדרה של הודעות לשלוח לתיבת הדו-שיח בסגנון Explorer כדי לקבל מידע או כדי לקבוע את ההתנהגות והמראה של תיבת הדו-שיח.
אם תספק שגרה הוו עבור תיבת הדו-שיח בסגנון Explorer, ההליך תיבת הדו-שיח ברירת המחדל יוצר תיבת דו-שיח הילד בעת הפרוצדורה תיבת דו-שיח של ברירת המחדל הוא עיבוד של המסר WM_INITDIALOG שלו. ההליך הוו מתנהג הפרוצדורה תיבת דו-שיח עבור תיבת הדו-שיח של הילד. בשלב זה, ההליך הוו מקבל הודעה WM_INITDIALOG משלו עם הפרמטר lParam בחר לכתובת של המבנה הפרמטר OPENFILENAME המשמש לאתחול בתיבת הדו-שיח. בתום בתיבת הדו-שיח הילד עיבוד הודעה WM_INITDIALOG משלו, הפרוצדורה תיבת דו-שיח ברירת המחדל מעביר את הפקדים רגיל, במידת הצורך לפנות מקום עבור פקדים נוספים של תיבת הדו-שיח של הילד. הפרוצדורה תיבת דו-שיח ברירת המחדל לאחר מכן שולח הודעת דיווח CDN_INITDONE ההליך הוו.
מקבל ההליך הוו WM_NOTIFY הודעות המציינות הפעולות שבוצעו על-ידי המשתמש בתיבת הדו-שיח. באפשרותך להשתמש כמה הודעות אלה כדי לפקח על אופן הפעולה של תיבת הדו-שיח. לדוגמה, שגרת הוו מקבל את ההודעה CDN_FILEOK כאשר המשתמש בוחר שם קובץ ולוחץ על לחצן אישור . בתגובה להודעה זו, ההליך הוו ניתן להשתמש בפונקציה SetWindowLong כדי לדחות את השם שנבחר לאכוף את תיבת הדו-שיח תישאר פתוחה.
הפרמטר lParam עבור כל הודעה WM_NOTIFY הוא מצביע למבנה OFNOTIFY המגדיר את הפעולה. חבר קוד בכותרת עבור מבנה OFNOTIFY מכיל את אחד מהקודים הדיווחים הבאים.
| CDN_FILEOK | המשתמש לוחץ על לחצן אישור ; תיבת הדו-שיח עומד לסגור. |
| CDN_FOLDERCHANGE | פותחים תיקייה חדשה או ספרייה. |
| CDN_HELP | המשתמש לוחץ על לחצן עזרה. |
| CDN_INITDONE | המערכת סיים את תיבת הדו-שיח אתחול ולאחר בתיבת הדו-שיח סיימה לעבד את ההודעה WM_INITDIALOG . כמו כן, המערכת סיים סידור פקדים בתיבת הדו-שיח נפוצות כדי לפנות מקום עבור הפקדים בתיבת הדו-שיח של הילד (אם בכלל). |
| CDN_SELCHANGE | המשתמש שנבחר מרשימת הקבצים של קובץ חדש או תיקיה. |
| CDN_SHAREVIOLATION | תיבת הדו-שיח נפוצות נתקל הפרת הרשאות שיתוף עבור הקובץ עומד להיות מוחזרים. |
| CDN_TYPECHANGE | המשתמש שנבחר סוג קובץ חדש מתוך הרשימה של סוגי קבצים. |
הודעות אלה WM_NOTIFY מחליף את FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGו- HELPMSGSTRING רשום הודעות בשימוש בגירסאות קודמות של תיבות הדו-שיח פתיחה , שמירה בשם . עם זאת, ההליך הוו מקבל גם את ההודעה המוחלפים לאחר ההודעה WM_NOTIFY אם עיבוד WM_NOTIFY אינה משתמשת SetWindowLong כדי להגדיר ערך שאינו אפס DWL_MSGRESULT.
כדי לאחזר מידע אודות המצב של תיבת הדו-שיח או כדי לקבוע את ההתנהגות והמראה של תיבת הדו-שיח, ההליך הוו לשלוח את ההודעות הבאות אל תיבת הדו-שיח.
| CDM_GETFILEPATH | מאחזר את הנתיב ושם הקובץ של הקובץ הנבחר. |
| CDM_GETFOLDERIDLIST | אחזור הרשימה מזהה פריט התואם לתיקיה הנוכחית שיש תיבת הדו-שיח פתח. לקבלת מידע נוסף אודות רשימות מזהה פריט, ראה מזהים פריט ורשימות מזהה. |
| CDM_GETFOLDERPATH | מאחזר את נתיב התיקיה הנוכחית או הספריה עבור תיבת הדו-שיח. |
| CDM_GETSPEC | מאחזר את שם הקובץ (לא כולל הנתיב) של הקובץ הנוכחי שנבחר בתיבת הדו-שיח. |
| CDM_HIDECONTROL | מסתיר את הפקד שצוין. |
| CDM_SETCONTROLTEXT | הגדרת הטקסט בפקד שצוין. |
| CDM_SETDEFEXT | מגדיר את סיומת שם הקובץ של ברירת המחדל עבור תיבת הדו-שיח. |