סייר בסגנון וו הליכים

באפשרותך להתאים אישית תיבת דו-שיח של 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 מגדיר את סיומת שם הקובץ של ברירת המחדל עבור תיבת הדו-שיח.

Index