לדלג לתוכן

תרגול חלון תור ולולאת הודעות

תרגיל ראשון - סדר יצירה

הוסיפו log לWM_NCCREATE, לWM_CREATE, לחזרה מCreateWindowExW, לWM_DESTROY ולWM_NCDESTROY. רשמו גם את מספר הthread. הסבירו אילו אירועים התרחשו בזמן שפונקציית היצירה עדיין הייתה על המחסנית.

תרגיל שני - שתי חלוניות

צרו שני חלונות מאותה מחלקה, לכל אחד AppState משלו. סגירת הראשון לא תסיים את לולאת ההודעות של השני. הגדירו מי סופר את החלונות החיים ומה קורה אם יצירת החלון השני נכשלת.

תרגיל שלישי - הודעה שאינה בעלות

הוסיפו הודעה פרטית בטווח WM_APP שמבקשת להחליף את המונה. השוו SendMessage לPostMessage כאשר שניהם נשלחים מאותו thread. העבירו את המספר עצמו בwParam, בלי להמיר כתובת של משתנה מקומי לlParam.

הסבירו מדוע הקוד היה נעשה מסוכן אם היינו מחליפים את המספר במצביע לvector מקומי ומשתמשים בPostMessage.