המבנה הפרמטר OPENFILENAME מכיל מידע המשתמשות בפונקציות GetSaveFileName ו- GetOpenFileName כדי לאתחל פתיחה או שמירהבשם נפוצות תיבת דו-שיח. לאחר שהמשתמש יסגור את תיבת הדו-שיח, המערכת מחזירה מידע אודות הבחירה של המשתמש במבנה זה .
typedef struct tagOFN {/ / ofn DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD דגלים;
המילה nFileOffset;
המילה nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} הפרמטר OPENFILENAME
אם הדגל OFN_EXPLORER מוגדר, המערכת עושה שימוש בתבנית שצוינה כדי ליצור תיבת דו-שיח בה הוא צאצא של תיבת הדו-שיח של Explorer-סגנון ברירת המחדל. אם לא מוגדר הדגל OFN_EXPLORER, המערכת עושה שימוש בתבנית כדי ליצור תיבת דו-שיח בסגנון הישן של המחליף את תיבת הדו-שיח המשמשת כברירת מחדל.
המחרוזת הראשונה בכל צמד הוא מחרוזת תצוגה המתארת את המסנן (לדוגמה, "קבצי טקסט"), המחרוזת השניה ציון התבנית מסנן (לדוגמה, "*.TXT"). כדי לציין תבניות אחדות של מסנן עבור מחרוזת בצג יחיד, השתמש בנקודה-פסיק כדי להפריד את התבניות (לדוגמה, "*.TXT; *.דוק; *.בק"). מחרוזת התבנית יכול להיות שילוב של תווים שם קובץ חוקי בתו הכללי כוכבית (*). אל תכלול רווחים במחרוזת תבנית.
המערכת אינה משנה את הסדר של המסננים. הוא מציג אותם בתיבה המשולבת שלסוגי קובץלפי הסדר שצוין ב- lpstrFilter .
אם lpstrFilter הוא NULL, תיבת הדו-שיח אינה מציגה כל המסננים.
אם חבר זה הוא NULL, תיבת הדו-שיח אינה שומרת על דפוסי הסינון המוגדרת על-ידי המשתמש.
אם חבר זה לא הוא ריק, הערך של החבר nMaxCustFilter עליך לציין את הגודל, בבתים (בגירסת ANSI) או תווים של 16 סיביות (גירסת Unicode), מאגר lpstrCustomFilter.
אם nFilterIndex הוא אפס, lpstrCustomFilter הוא NULL, המערכת משתמשת המסנן הראשון במאגר lpstrFilter . אם כל בני שלוש אפס או NULL, המערכת תשתמש מסננים כלשהם, תציג קבצים בפקד הרשימה קובץ של תיבת הדו-שיח.
אם הדגל OFN_ALLOWMULTISELECT מוגדר המשתמש בוחר קבצים מרובים, המאגר מכיל את הספריה הנוכחית ואחריו את שמות הקבצים של הקבצים שנבחרו. עבור תיבות דו-שיח בסגנון Explorer, מחרוזות הספריה ושם הם NULL המופרדות באמצעות תו NULL נוספים אחרי שם הקובץ האחרון. עבור תיבות דו-שיח בסגנון הישן, המחרוזות מופרדים באמצעות רווח, הפונקציה משתמשת שמות קבצים קצרים עבור שמות קבצים עם רווחים. באפשרותך להשתמש בפונקציה FindFirstFile כדי להמיר בין שמות קבצים ארוך וקצר.
אם המאגר קטן מדי, הפונקציה מחזירה את הערך FALSE, הפונקציה CommDlgExtendedError מחזירה FNERR_BUFFERTOOSMALL. במקרה זה, שני הבתים הראשונים של מאגר lpstrFile להכיל את הגודל הנדרש, בתים או בתווים.
Windows NT 5.0 ואילך; Windows 98 ומאוחרות יותר:
אם lpstrInitalDir הוא NULL הספריה הנוכחית מכילה קבצים מהסוגים מסנן שצוין, הספריה ההתחלתית היא הספריה הנוכחית.
אם lpstrInitalDir הוא NULL, הספריה הנוכחית אינה מכילה קבצים מהסוגים מסנן שצוין, הספריה ההתחלתית היא ספריית קבצים אישיים של המשתמש הנוכחי. כדי לציין ספריית קבצים אישיים של המשתמש הנוכחי כספריית הראשונית, הגדר lpstrInitialDir בנתיב המוחזר על-ידי קריאה SHGetSpecialFolderLocation הפונקציה עם הדגל CSIDL_PERSONAL.
גירסאות קודמות של Windows ו- Windows NT:
אם lpstrInitalDir הוא NULL, הספריה ההתחלתית היא הספריה הנוכחית.
דגל | משמעות |
---|---|
OFN_ALLOWMULTISELECT | |
מציין תיבת הרשימה קבצים שם מאפשר בחירת פריטים מרובים. אם תגדיר גם את הדגל OFN_EXPLORER, תיבת הדו-שיח עושה שימוש בממשק משתמש בסגנון Explorer; אחרת, היא משתמשת בממשק המשתמש בסגנון הישן. אם המשתמש בוחר יותר מקובץ אחד, מאגר lpstrFile מחזירה הנתיב לספריה הנוכחית ואחריו שמות הקבצים של הקבצים שנבחרו. החבר nFileOffset הוא ההיסט בבתים או תווים, לשם הקובץ הראשון, ואת החבר nFileExtension לא נעשה. עבור תיבות דו-שיח בסגנון Explorer, מחרוזות הספריה ושם הם NULL המופרדות באמצעות תו NULL נוספים אחרי שם הקובץ האחרון. תבנית זו מאפשרת את תיבות דו-שיח של Explorer בסגנון לחזור ארוכים כוללות רווחים. עבור תיבות דו-שיח בסגנון הישן, מחרוזות הספריה ושם מופרדים באמצעות רווחים, הפונקציה משתמשת שמות קבצים קצרים עבור שמות קבצים עם רווחים. באפשרותך להשתמש בפונקציה FindFirstFile כדי להמיר בין שמות קבצים ארוך וקצר. אם ברצונך לציין תבנית מותאמת אישית עבור תיבת הדו-שיח בסגנון הישן, ההגדרה של תיבת הרשימה שם הקובץ חייב להכיל את הערך LBS_EXTENDEDSEL. |
|
OFN_CREATEPROMPT | |
אם המשתמש מציין קובץ שלא קיים, דגל זה גורמת את תיבת הדו-שיח כדי לבקש מהמשתמש הרשאה ליצור את הקובץ. אם המשתמש בוחר ליצור את הקובץ, תיבת הדו-שיח נסגרת, הפונקציה מחזירה את השם שצוין; אחרת, תיבת הדו-שיח תישאר פתוחה. אם אתה משתמש בדגל זה עם הדגל OFN_ALLOWMULTISELECT, תיבת הדו-שיח מאפשר למשתמש לציין קובץ שאינו קיים אחד בלבד. | |
OFN_ENABLEHOOK | |
מאפשר את הפונקציה הוו המצוינים חבר lpfnHook. | |
OFN_ENABLESIZING | |
Windows NT 5.0, Windows 98:מאפשר את תיבת הדו-שיח סגנון Explorer ישונה באמצעות העכבר או לוח המקשים. כברירת מחדל, תיבות הדו-שיח Explorer בסגנון פתיחה , שמירה בשם לאפשר את תיבת הדו-שיח גודל להתחשב אם דגל זה מוגדר. דגל זה נחוץ רק אם תספק את הקרס פרוצדורה או תבנית מותאמת אישית. תיבת הדו-שיח בסגנון הישן אינו מאפשר שינוי גודל. | |
OFN_ENABLETEMPLATE | |
מציין החבר lpTemplateName מצביע על שם משאב תבנית הדו-שיח במודול המזוהה על-ידי חבר hInstance. אם הדגל OFN_EXPLORER מוגדר, המערכת עושה שימוש בתבנית שצוינה כדי ליצור תיבת דו-שיח בה הוא צאצא של תיבת הדו-שיח של Explorer-סגנון ברירת המחדל. אם לא מוגדר הדגל OFN_EXPLORER, המערכת עושה שימוש בתבנית כדי ליצור תיבת דו-שיח בסגנון הישן של המחליף את תיבת הדו-שיח המשמשת כברירת מחדל. |
|
OFN_ENABLETEMPLATEHANDLE | |
מציין החבר hInstance מזהה בלוק נתונים המכיל את תבנית בתיבת הדו-שיח שנטענו מראש. המערכת מתעלמת lpTemplateName אם דגל זה מצוין. אם הדגל OFN_EXPLORER מוגדר, המערכת עושה שימוש בתבנית שצוינה כדי ליצור תיבת דו-שיח בה הוא צאצא של תיבת הדו-שיח של Explorer-סגנון ברירת המחדל. אם לא מוגדר הדגל OFN_EXPLORER, המערכת עושה שימוש בתבנית כדי ליצור תיבת דו-שיח בסגנון הישן של המחליף את תיבת הדו-שיח המשמשת כברירת מחדל. |
|
OFN_EXPLORER | |
מציין כי כל ההתאמות האישיות שביצעת בתיבת הדו-שיח פתיחה או שמירה כפי להשתמש בשיטות התאמה אישית Explorer בסגנון חדש. לקבלת מידע נוסף, ראה בסגנון Explorer הוו הליכים ו בסגנון סייר תבניות מותאמות אישית. כברירת מחדל, תיבות הדו-שיח פתיחה , שמירה בשם להשתמש בממשק המשתמש בסגנון Explorer להתחשב אם דגל זה מוגדר. דגל זה נחוץ רק אם לספק הוו פרוצדורה או תבנית מותאמת אישית, או להגדיר את הדגל OFN_ALLOWMULTISELECT. אם אתה רוצה את ממשק המשתמש בסגנון הישן, להשמיט את הדגל OFN_EXPLORER ספק תבנית חלופית בסגנון הישן, או הוו בהליך. אם ברצונך בסגנון הישן, אך לא צריך תבנית מותאמת אישית או לחבר בהליך, פשוט מספקים את פרוצדורת hook אשר תמיד מחזירה FALSE. |
|
OFN_EXTENSIONDIFFERENT | |
ציון המשתמש הקליד סיומת שם קובץ השונה מזה של ההרחבה שצוין על-ידי lpstrDefExt. הפונקציה אינה משתמשת דגל זה אם lpstrDefExt הוא NULL. | |
OFN_FILEMUSTEXIST | |
מציין כי המשתמש להקליד רק שמות של קבצים קיימים בשדה ערך קובץ שם . אם דגל זה צוין, המשתמש מזין שם לא חוקי, הפרוצדורה של תיבת הדו-שיח מציג אזהרה בתיבת הודעה. אם דגל זה צוין, הדגל OFN_PATHMUSTEXIST משמש גם. | |
OFN_HIDEREADONLY | |
הסתרת לקריאה בלבד בתיבת הסימון. | |
OFN_LONGNAMES | |
עבור תיבות דו-שיח בסגנון הישן, דגל זה גורם את תיבת הדו-שיח כדי להשתמש בשמות קובץ ארוכים. אם דגל זה לא צוין, או אם הדגל OFN_ALLOWMULTISELECT מוגדר גם, תיבות הדו-שיח בסגנון הישן להשתמש שמות קבצים קצרים (תבנית 8.3) עבור שמות קבצים עם רווחים. תיבות דו-שיח בסגנון explorer להתעלם דגל זה ולהציג תמיד בשמות קבצים ארוכים. |
|
OFN_NOCHANGEDIR | |
משחזרת את הספריה הנוכחית לערך המקורי שלו אם המשתמש שינה את הספריה בעת חיפוש קבצים. | |
OFN_NODEREFERENCELINKS | |
מנחה את תיבת הדו-שיח כדי להחזיר את הנתיב ואת שם הקובץ של קיצור המקשים שנבחר (.קובץ LNK). אם לא צוין ערך זה, תיבת הדו-שיח מחזירה הנתיב ואת שם הקובץ של הקובץ שאליו בוצעה הפניה על-ידי קיצור הדרך | |
OFN_NOLONGNAMES | |
תיבות דו-שיח בסגנון הישן, דגל זה גורם את תיבת הדו-שיח כדי להשתמש בשמות קבצים קצרים (תבנית 8.3). תיבות דו-שיח בסגנון explorer להתעלם דגל זה ולהציג תמיד בשמות קבצים ארוכים. |
|
OFN_NONETWORKBUTTON | |
מסתיר, הופכת ללא זמין את הלחצן רשת. | |
OFN_NOREADONLYRETURN | |
ציון קובץ מוחזרים אין קריאה רק תיבת הסימון מסומנת, ואין הוא ספריה מוגנת מפני כתיבה. | |
OFN_NOTESTFILECREATE | |
ציון הקובץ לא נוצר לפני סגירת תיבת הדו-שיח. דגל זה צריך להיות שצוין אם היישום שומר את הקובץ במיקום משותף ברשת יצירה-nonmodify. ציון דגל זה, הספריה אינה בודקת ההגנה מפני כתיבה, דיסק מלא, הדלת פתוחה בכונן או רשת הגנה. יישומים באמצעות דגל זה עליך לבצע פעולות קבצים בזהירות, כי אין קובץ מחדש לאחר היא סגורה. | |
OFN_NOVALIDATE | |
מציין תיבות הדו-שיח המשותפות של אפשר תווים לא חוקיים ב- filename המוחזר. בדרך כלל, היישום הקורא משתמש שגרה hook אשר בודק את שם הקובץ על-ידי שימוש את ההודעה FILEOKSTRING. אם תיבת הטקסט בפקד העריכה ריק או מכיל רווחים, יעודכנו הרשימות של קבצים וספריות. אם תיבת הטקסט בפקד העריכה מכיל כל דבר אחר, nFileOffset ו- nFileExtension מוגדרות לערכי שנוצרו על-ידי ניתוח מבנה הטקסט. סיומת ברירת המחדל לא יתווסף הטקסט, וגם טקסט מועתק אל המאגר שצוין על-ידי lpstrFileTitle. | |
אם הערך שצוין על-ידי nFileOffset קטן מאפס, שם הקובץ אינו חוקי. אחרת, שם הקובץ הוא חוקי, nFileExtension ו- nFileOffset יכול לשמש כאילו הדגל OFN_NOVALIDATE לא צוין. | |
OFN_OVERWRITEPROMPT | |
גורםכמו תיבת הדו-שיח שמירהליצירת תיבת הודעה אם הקובץ הנבחר כבר קיים. המשתמש חייב לאשר אם להחליף את הקובץ . | |
OFN_PATHMUSTEXIST | |
מציין כי המשתמש להקליד נתיבים חוקיים ושמות בלבד. אם דגל זה נמצא בשימוש המשתמש מקליד בשדה הזנתשם הקובץשל שם הקובץ והנתיב לא חוקי, הפונקציה של תיבת הדו-שיח מציג אזהרה בתיבת הודעה . | |
OFN_READONLY | |
גורם לקריאה בלבד בתיבת הסימון ייבדק בתחילה כאשר תיבת הדו-שיח נוצר. דגל זה מציין את מצב קריאה בלבד בתיבת הסימון כאשר תיבת הדו-שיח סגורה. | |
OFN_SHAREAWARE | |
מציין כי אם קריאה ל- OpenFile פונקציה נכשלת בשל רשת הפרת, מתעלמת השגיאה בתיבת הדו-שיח מחזירה את שם הקובץ שנבחר. אם דגל זה אינו מוגדר, תיבת הדו-שיח מודיע את הליך hook לרשת הפרת מתרחש עבור שם הקובץ שצוין על-ידי המשתמש. אם תגדיר את הדגל OFN_EXPLORER, תיבת הדו-שיח שליחת ההודעה CDN_SHAREVIOLATION להליך הוו. אם לא תגדיר את תצורתה של OFN_EXPLORER, תיבת הדו-שיח שליחת ההודעה רשום SHAREVISTRING ההליך הוו. |
|
OFN_SHOWHELP | |
גורמת לפתיחת תיבת הדו-שיח להציג את לחצן עזרה . החבר hwndOwner , עליך לציין החלון כדי לקבל את HELPMSGSTRING רשום הודעות בתיבת הדו-שיח השולח כאשר המשתמש לוחץ על לחצן עזרה. תיבת דו-שיח של Explorer בסגנון שולח הודעת דיווח CDN_HELP לשגרה הוו שלך כאשר המשתמש לוחץ על לחצן עזרה. |
אם המשתמש בוחר יותר מקובץ אחד, nFileOffset הוא ההיסט לשם הקובץ הראשון.
אם הדגל OFN_EXPLORER מוגדר לא חבר דגלים , lpfnHook הוא מצביע פרוצדורת hook OFNHookProcOldStyle שמקבל הודעות המיועד עבור תיבת הדו-שיח. הליך הוו מחזיר FALSE כדי להעביר הודעה להליך תיבת הדו-שיח המשמשת כברירת מחדל או נאמן כדי להשליך את ההודעה.
אם הוא OFN_EXPLORER, lpfnHook הוא מצביע פרוצדורת hook OFNHookProc . ההליך הוו מקבל הודעות שנשלחו מתוך תיבת הדו-שיח. ההליך הוו מקבל גם הודעות עבור פקדים נוספים המוגדרות על-ידי ציון תבנית הדו-שיח הילד. ההליך הוו לא יקבל הודעות המיועד עבור פקדים רגילים של תיבת הדו-שיח המשמשת כברירת מחדל.
אם הדגל OFN_EXPLORER מוגדר, המערכת עושה שימוש בתבנית שצוינה כדי ליצור תיבת דו-שיח בה הוא צאצא של תיבת הדו-שיח של Explorer-סגנון ברירת המחדל. אם לא מוגדר הדגל OFN_EXPLORER, המערכת עושה שימוש בתבנית כדי ליצור תיבת דו-שיח בסגנון הישן של המחליף את תיבת הדו-שיח המשמשת כברירת מחדל.
nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על commdlg.h.
Unicode:מוגדר כ- Unicode ומבני ANSI.
סקירה נפוצות על תיבת הדו-שיח ספריית, מבנים נפוצות של תיבת הדו-שיח, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation