שאלת תכנון ב-MFC

annefan

New member
שאלת תכנון ב-MFC

בתוכנית שלי יש נתונים שאותם אני רוצה לאפשר לראות ולשנות דרך שני דיאלוגים (התוכנית היא Dialog-Based אם זה משנה). המשתמש יכול לעבור בין שני הדיאלוגים בזמן הריצה. איך ניתן\מומלץ להעביר את הנתונים בין הדיאלוגים? כרגע, כל הנתונים מנוהלים בתוך אחד הדיאלוגים. כיוונים אפשריים: 1) נתונים גלובליים (איחס, אבל MFC גם ככה מלא בהם...). 2) להעביר את הנתונים מהדיאלוג לאפליקציה, להוסיף בנאים מתאימים לשני הדיאלוגים (כאלו שמקבלים את הנתונים) ולשנות את InitInstance של האפחקציה בהתאם. 3) ???
 

voguemaster

New member
doc/view

תיצור שני views של אותו ה-document. עקרונית אתה יכול לצייר מה שבא לך בכל אחד מהם. התחלת להתעסק עם הנושא של doc/view ?
 

annefan

New member
עם doc/view ממש, לא עבדתי

אם אני מבין את הרעיון נכון, זה פחות או יותר האפשרות השניה שכתבתי. כל הנתונים יקראו, ויכתבו באפליקציה (הקבצים שמסתיימים ב-app ושבהם יש קריאה לדיאלוג), ויעברו כפרמטרים לבנאים של שני הדיאלוגים. ב-wizard של יצירת פתרון חדש (solution...), בחירת אפליקציה מבוססת דיאלוג, חוסמת את האפשרות של doc/view, לכן ההסתייגות שלי.
 

voguemaster

New member
תראה

עקרונית זה נכון, אפשר עם קצת דיזיין נכון לעשות את זה. לא זו הפואנטה. העניין הוא שלעשות את זה ישירות עם MFC עדיף מהסיבה הפשוטה שככה אתה יכול לטפל באירועים מסוימים בחלק המתאים. אירועים של view 1 יטופלו ע"י המחלקה של ה-view הראשון, אירועים של view 2 בהתאם ואירועים של ה-doc יטופלו במחלקת ה-doc! יתרון חביב
 

annefan

New member
חסר לי ידע

סליחה אם השאלות קצת טפשיות. א. ל-DOC אין ארועים, מלבד בקריאה בתחילת התוכנית, וכתיבה בסופה. ב. גם אם כן, החלוקה הזו היא גם בתכנון שלי. כלומר, בכל מקרה כל דיאלוג מטפל באירועים שלו (יש XOR בין הדיאלוגים). לכן, אני לא לגמרי מבין את היתרון בשימוש ב-framework הזה. בכל מקרה, המצב הוא שיש לי דיאלוג אחד, עם טיפול טוב בנתונים. אני כנראה אנסה להעביר את הטיפול בהם לרמת ה-app, ולראות אין הוא עובד, ואז להוסיף את הדיאלוג השני. עוד המלצות והערות יתקבלו בברכה.
 

voguemaster

New member
הייתי פותח PROSIS עכשיו

אילולא הייתי תקוע על באג של חירבוש STACK בלינוקס. מי הגאון שאמר ש ++C עדיפה על ג'אווה ?
 

annefan

New member
זאת לא בעיה

שים watch ב-GDB על הזכרון שמתחרבש ותן לו לרוץ. קלי קלות... סתם, לא מקנא בך. עוד שבועיים שלושה של חיים קלים, ואני נכנס חזרה לעולם הזה. לגבי Prosise, יש לי את ה-ebook ואולי גם את אחד הפרקים על doc/view מודפס. קראתי את חלקו, אבל לא הייתי צריך אז את החלק הזה. בכל מקרה זה סתם utility שלא קשורה לכלום (מעבר לרצון להכיר קצת את העולם הזה של WIN32 API ו-MFC). תודה בכל מקרה.
 

voguemaster

New member
ידידי

תאמין לי שזה לא ממש עוזר לי. ה-seg fault שאני מקבל היא בכל פעם במקום אחר אבל יש לה מכנה משותף אחד קטן (דגש על קטן). זה גם באג שלוקח זמנים שונים לתפוס אותו והמצב של ה-stack שונה מפעם לפעם כך שאין לי כ"כ אפשרות לשים watch על מיקום ספציפי. אני מקבל seg fault כשאני מנסה לקרוא לפונק' וירטואלית על אובייקט (קיים) כאשר אני מעביר פוינטר לאובייקט אחר. שום דבר לא מסובך, אני מקבל crash באותה נק' ואין לי שמץ למה
איפה, איפה SoftIce כשצריך אותו
 

DadleFish

New member
אם יש לך כמה שעות,

הייתי משקיע בקריאה של Programming Windows with MFC של Jeff Prosise.
 
למעלה