Modless Dialog
مطلب امروز در مورد پنجره های Modless هستش.
شايد بگيد يعنی چی !!!
اگه دقت کرده باشيد معمولا پيغامهای خطا يا هشدار دهنده
به شکلی هستند که وقتی نمايش داده ميشوند ديگه نمی تونيد به
پنجره برنامه اصلی دسترسی داشته باشيد و غير فعال می شود تا
زمانی که به اون پيغام خطا يا هشدار يه جواب مناسب (حالا از OK
گرفته تا Yes و No ) بدهيد. به اينگونه نمايش يه پنجره
(همون پيغام خطا خودش يه پنجره هستش ديگه) روش Modal
ميگن.
حالا بعضی مواقع نياز داريد که پنجره هايی رو
نشون بديد که همزمان نياز باشه که هم روی پنجره اصلی برنامه و هم
روی اين پنجره جديد نمايش داده شده کار شود (يه مثال خوب و روشن برای
اين نوع ياهو مسنجر هستش که اين صفحه اصلی رو در ابتدا داريد و به
ازای هر PM که باز می کنيد يا به شما داده ميشه يه پنجره باز ميشه که
بايد بتونيد روی هرکدوم که خواستيد کار کنيد ) به اين نوع نمايش پنجره Modless ميگن.
کار خيلی راحت و کوتاه هستش.
اول که خب بايد ديالوگتون و کد های مربوط رو بنويسيد!
هر موقع خواستيد از يه ديالوگ يه ديالوگ ديگه رو نمايش بديد
کافی هستش که چند خط زير رو بنويسيد :
CDialog *MyDlg=new CDialog();
MyDlg->Create(IDD_ABOUTBOX,0);
MyDlg->ShowWindow(true);
توضيحات :
IDD_ABOUTBOX مربوط به ID
ديالوگ اصلی شما ميشود که حالا اينجا من برای سادگی کار خواستم
ديالوگ About که بصورت پيش فرض ساخته ميشه رو نشون بدم !
اگه دقت کنيد تابع Create از شما ۲ تا پارامتر می
خواد که با اولی آشنا شديد. اما دومی چيه ؟! بايد بگم اگه دومی
رو مقدار ۰ يا همون NULL قرار بديد فرض
ميکنه که پدر ديالوگی که ميخواهيد نمايش بديد اون ديالوگی هستش که از
اون قصد نمايش اين ديالوگ جديد رو داريد و يکم با اينکه يه ديالوگ مستقل باشه فرق ميکنه
(مثلا اگه ديالوگ اصلی رو مينيمم کنيد اين هم همراه اون مينيمم ميشه و اگه اين
جديد رو مينيمم کنيد ديگه روی TaskBar ديده نميشه و مثل پروژهای MDI
انگار که ديالوگ اصلی شما برنامه Container
اصلی باشد ديالوگ جديد به همون شکل مينيمم ميشه ! حالا تست کنيد بهتر
دستگيرتون ميشه!). اما اگه بخواهيد عين صفحه PM در
YAHOO! Messeneger وقتی ديالوگ جديد رو نمايش ميديد
بر روی TaskBar هم ديده بشه
بايد يه اشاره گر به Desktop بهش بديد که با تابع GetDesktopWindow که هيچ پارامتر ورودی هم نياز نداره اين کار ميسر ميشه.
بازگشت به فهرست
بازگشت به صفحه نخست