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

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

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

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

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

Index