|
Bajarilishi kerak bo'lgan vazifa
|
bet | 48/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практикаBajarilishi kerak bo'lgan vazifa:
MDI ilovasini matn muharriri sifatida yarating .
Amalga oshirish tartibi:
Jamoa tanlang Yaratmoq yangi bola oynasini yaratish uchun MDI . Bir nechta ichki oynalarni yaratganingizdan so'ng, siz buyruqlardan foydalanishingiz mumkin Kaskad Va Plitka ularni mijoz oynasiga mos ravishda joylashtirish uchun. Derazalarni piktogrammalarga qisqartiring, piktogrammalarni mijoz oynasi atrofida joylashtiring va keyin buyruqdan foydalaning Mijoz oynasining pastki qismidagi piktogrammalarni qatorga joylashtirish uchun Belgilarni tartibga soling . Nihoyat, jamoani tanlang Hammasini yopish barcha kichik oynalarni bir vaqtning o'zida yopish uchun (siz faqat bitta oynani yopish uchun istalgan oynaning tizim menyusidan foydalanishingiz mumkin).
Avval funktsiyaga qarang InitMainWindow() :
bekor TApp::InitMainWindow()
{
// Mijoz oynasini yarating.
TMDIClient *clientTWndw = yangi TMDIClientTWndw;
// Asosiy oynani yarating.
TMDIFrame *wndw= yangi TMDIFrame("MDI ilovasi ",MENU_1,*clientTWndw);
// Ilovaning MainWindow ko'rsatkichi qiymatini o'rnating.
SetMainWindow(wndw);
}
InitMainWindow() avval dastur mijoz oynasini quradi. Har biri MDI - ilova boyqush sinfdan olingan mijoz oynasiga ega bo'lishi kerak TMDIClient . Bu xuddi MDICHILD.H sarlavha faylini kiritishingiz kerak degan ma'noni anglatadi MDI.H , dasturingizga kiriting. Ushbu dastur o'zining mijoz oynasi sinfiga ega, bu, albatta, sinfdan kelib chiqadi TMDIClient OWL . TMDIClient , o'z navbatida, dan olingan Ikki oyna uchun xabarlarga javob berish funksiyalarini taqdim etadi Menyudagi MDI buyruqlari Deraza , ichkarida raqam qaysi kiritilgan CmCreateChild( ) CmCreateChildren() , CmCascadeChildren() Va CmTileChildren() . TMDIClient shuningdek, menyular uchun buyruqlar mavjudligi kalitlarini ham o'z ichiga oladi Menyu buyruqlarini yoqish va o'chirish haqida tashvishlanmaslik uchun oyna Oyna . Nihoyat, xususiyatlar GetActiveMDIChild() Va InitChild() TMDIClient sinfi faol bolalar oynasiga ko'rsatgich olish va maxsus bolalar oynalarini yaratish imkonini beradi MDI oynalari.
Mijoz oynasini qurishni tugatgandan so'ng, dastur sinfning ob'ekti bo'lishi kerak bo'lgan asosiy dastur oynasini quradi. TMDIFrame (yoki undan olingan sinf TMDIFrame ). Konstruktor TMDIFrame parametr sifatida sarlavha satriga, menyu manbasi identifikatoriga va mijoz oynasiga havolaga ega. Sinf TMDIFrame dan keladi TFrameWindow va menyu joylarini topish va saqlash kabi vazifalarni bajaradi Oyna dasturlari. Bundan tashqari, bu sinf a'zo funktsiyasini belgilaydi GetClienTWindow() , bu ramka oynasining mijoz oynasiga ko'rsatgichni va funksiyani qaytaradi Oyna menyusining o'rnini sozlash uchun qo'ng'iroq qilishingiz mumkin bo'lgan SetMenu(). yangi menyu satrini o'rnatgandan so'ng.
Dastur nafaqat mijoz oynasini, balki o'zining deb nomlangan versiyasini yaratadi TMDIClientTWndw dan keladi TMDIClient :
TMDIClientTWndw sinfi : umumiy TMDIClient
{
|
| |