מתי להשתמש בתיבת הדו-שיח

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

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

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

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

בדרך כלל, יישום יוצר תיבת דו-שיח על-ידי שימוש בפונקציה ' DialogBox ' או ' CreateDialog . DialogBox יוצר תיבת דו-שיח מודאלית; CreateDialog יוצר תיבת הדו-שיח modeless. אלה שתי פונקציות לטעון תבנית בתיבת הדו-שיח מתוך קובץ ההפעלה של היישום וליצור חלון מוקפץ המתאים המפרטים של התבנית. קיימות פונקציות נוספות יוצר תיבת דו-שיח על-ידי שימוש בתבניות בזיכרון; והם מעבירים פרטים נוספים להליך תיבת הדו-שיח תיבת הדו-שיח נוצר.

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

Index