פתיחה ושמירה בשם תיבות דו-שיח

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

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

החל מ- Windows 95 ו- Windows NT גירסה 4.0, גרסה חדשה של תיבות הדו-שיח פתיחה , שמירה בשם מספק תכונות ממשק משתמש דומה ל- Windows Explorer. עם זאת, המערכת ממשיכה לתמוך את תיבות הדו-שיח בסגנון הישן פתיחה , שמירה בשם עבור יישומים להיות עקבי עם ממשק המשתמש בוגרים.

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

האיור הבא מציג תיבת דו-שיח טיפוסית בסגנון Explorer פתוח.

האיור הבא מראה אופייני בסגנון Explorer שמירה בשם תיבת דו-שיח.

אם המשתמש מציין שם קובץ ולוחץ על לחצן אישור , GetOpenFileName או GetSaveFileName מחזירה TRUE. מאגר הצביע על-ידי חבר lpstrFile של מבנה הפרמטר OPENFILENAME מכיל את הנתיב המלא ואת שם הקובץ שצוין על-ידי המשתמש.

אם המשתמש מבטל את תיבת הדו-שיח פתיחה או שמירה בשם או שתתרחש שגיאה, הפונקציה מחזירה FALSE. כדי לקבוע את הגורם לשגיאה, לפונקציה CommDlgExtendedError כדי לאחזר את הערך שגיאות מורחב. אם המאגר lpstrFile קטן מדי כדי לקבל את השם המלא, CommDlgExtendedError מחזירה FNERR_BUFFERTOOSMALL 2 הבתים הראשונים של המאגר הצביע על-ידי חבר lpstrFile להגדיר ואת ערך מספר שלם שמציין את הגודל הדרוש כדי לקבל את השם המלא.

תיבות הדו-שיח סגנון explorer זמינים רק יישומי 32 סיביות. יישומי 16 סיביות אין להשתמש thunking כדי להציג תיבת דו-שיח של Explorer בסגנון.

Windows 95 ו- Windows 98: יישומים מבוססי-Win32 להשתמש בתיבות הדו-שיח בסגנון הישן לעשות זאת באמצעות של thunk. משמעות הדבר היא כי כל מצביע שמועבר אל פרוצדורת hook שלך היא עותק nonpersistent הנתונים. לדוגמה, מצביע הפרמטר OPENFILENAME שהועברה את ההודעה WM_INITDIALOG הוא לא מצביע למאגר שציינת במקור. אם יש צורך להעביר נתונים פרטיים לשגרה הוו שלך, לכלול את אותו מבנה ולאחסן מצביע למבנה חבר lCustData של מבנה הפרמטר OPENFILENAME.

Index