9 MAVZU OLE, MFC texnologiyalari. Ko’p oynali muhitlar bilan ishlash. Visual C++ muhitida ko’p oynali muhit yaratish. 1 Mа’ruza rejasi 1 OLE va MFC tushunchasi 2 Ko’p oynali muhitlar bilan ishlash 3 Visual C++ muhitida ko’p oynali muhit yaratish DASTURLASH 2 2 OLE haqida tushuncha OLE (Object Linking and Embedding) - bu Microsoft tomonidan ishlab chiqilgan boshqa hujjatlar va ob'ektlarga ob'ektlarni bog'lash va joylash texnologiyasi. OLE sizga ishning bir qismini bitta tahrirlash dasturidan boshqasiga o'tkazish va natijalarni qaytarish imkoniyatini beradi. Masalan, shaxsiy kompyuterga o'rnatilgan nashriyot tizimi ba'zi matnlarni qayta ishlash uchun matn muharririga yoki OLE texnologiyasidan foydalangan holda rasm muharririga ba'zi rasmlarni yuborishi mumkin. DASTURLASH 2 3 OLE 1.0 OLE 1.0 1990 yilda Microsoft Windows operatsion tizimining oldingi versiyalarida ishlatiladigan DDE (Dynamic Data Exchange) texnologiyasi asosida chiqarildi. DDE texnologiyasi ikkita ishlaydigan dasturlar o'rtasida ma'lumotlarni uzatish soni va usullarida juda cheklangan bo'lsa-da, OLE ikki hujjat o'rtasidagi faol ulanishlarda ishlashi mumkin edi yoki hatto bitta turdagi hujjatni boshqa turdagi hujjatlarga joylashtirdi. OLE serverlari va mijozlari virtual kutubxona (VTBL) yordamida tizim kutubxonalari bilan o'zaro ishlaydi. Ushbu jadvallarda tizim kutubxonasi server yoki mijoz bilan o'zaro ishlashda foydalanishi mumkin bo'lgan funktsiyalarga ko'rsatmalar mavjud. OLESVR.DLL (serverda) va OLECLI.DLL (mijozda) kutubxonalari dastlab operatsion tizim tomonidan taqdim etilgan WM_DDE_EXECUTE xabaridan foydalanib, bir-biri bilan aloqa qilish uchun yaratilgan. DASTURLASH 2 4 OLE 2.0 va ActiveX OLE 2.0 Keyingi evolyutsion qadam avvalgi versiyada bo'lgani kabi bir xil maqsad va vazifalarni saqlab qolgan OLE 2.0 edi. Ammo OLE 2.0 VTBL-dan foydalanish o'rniga COM arxitekturasiga qo'shimcha bo'ldi. Yangi funktsiyalar sirasiga tortish texnologiyasini avtomatlashtirish, joyni faollashtirish va tarkibiy saqlashni o'z ichiga oladi. ActiveX 1996 yilda Microsoft OLE 2.0 texnologiyasini ActiveX ga o'zgartirdi. ActiveX boshqaruvlari, ActiveX hujjatlari va Active Skriptting texnologiyasi joriy etildi. Ushbu OLE versiyasi asosan veb-dizaynerlar tomonidan multimedia ma'lumotlarini sahifalarga kiritish uchun ishlatiladi. DASTURLASH 2 5 MFC haqida tushuncha Microsoft Foundation Classes (MFC) to'plami - bu Microsoft tomonidan ishlab chiqilgan C ++ kutubxonasidir, u Microsoft Windows uchun GUI dasturlarini rivojlanishini engillashtirish uchun mo'ljallangan, kutubxona sinflarining boy to'plamidan foydalanadi. MFC kutubxonasi, shuningdek uning asosiy raqobatchisi Borland VCL, GUI bilan dastur karkasini yaratishda yordam beradi - "skelet" dasturi, bu interfeys sxemasiga muvofiq avtomatik ravishda tuziladi va muntazam parvarishlash vazifalarini (oyna hodisalarini qayta ishlash, ma'lumotlarni uzatish o'rtasida uzatish) amalga oshiradi. ichki element tamponlari va dastur parametrlari va boshqalar). Ilova doirasini yaratgandan so'ng, dasturchi faqat maxsus harakatlar talab etiladigan joylarda kodni kiritishi kerak. Ramka aniq belgilangan tuzilishga ega bo'lishi kerak, shuning uchun uni yaratish va o'zgartirish uchun sehrgarlar Visual C ++ da taqdim etiladi. DASTURLASH 2 6 MFC ning birinchi versiyasi 1992 yilda Microsoft-ning 16 bitli C / C ++ til kompilyatorining ettinchi versiyasi bilan birga chiqdi. API funktsiyalaridan foydalangan holda dasturlarni ishlab chiquvchilar uchun MFC to'plami dasturlash jarayoni samaradorligini sezilarli darajada oshirishni va'da qildi. MFC-ning e'tiborga molik xususiyatlaridan biri bu ko'p funktsiyalar, makroslar nomlari va standart "stdafx.h" nomlari ishlatiladigan "Afx" prefiksi. Rivojlanishning boshlang'ich bosqichida keyinchalik MFC deb nomlanadigan narsa "Application Framework Extents" va "Afx" qisqartmasi deb nomlandi. Microsoft Foundation Classes (MFC) nomini o'zgartirish to'g'risida qaror Afx-ga koddagi havolalarni o'zgartirish uchun juda kech qabul qilindi. DASTURLASH 2 7 KO’P OYNALI MUHIT Ko’p oynali muhit (ingliz tilidagi multiple document interface, MDI) - ko'pgina oynalar (qoida tariqasida faqat modal oynalardan tashqari) bitta umumiy oynada joylashgan oynali interfeysdan foydalanishni o'z ichiga olgan grafik foydalanuvchi interfeysini tashkil qilish usuli. Bu uni SDI-dan ajratib turadigan narsa, derazalar bir-biridan mustaqil ravishda joylashgan. Ishlab chiquvchilar ikkala turdagi interfeysdan va ko'pincha aralash turdagi interfeysdan keng foydalanadilar. Masalan, Microsoft Microsoft Office interfeysini SDIdan MDI-ga o'zgartirdi va keyinchalik SDI-ga qaytdi, garchi amalga oshirish darajasi birinchi va ikkinchi darajani o'z ichiga olsa ham. DASTURLASH 2 8 MDI Windows ko'p oynali muhiti (MDI) dasturlarga bitta ota-ona shaklida joylashgan bir nechta shakllar bilan ishlashga imkon beradi. MDI-ni ishlatish dastur interfeysini toza qiladi, chunki undagi shakllar ekranga tarqalib ketmaydi. MDI standarti dasturlarni ikki yo'nalishda takomillashtirishga imkon beradi. Birinchidan, siz o'zingizni bitta form-konteyner bilan cheklashingiz mumkin, bu dasturning ishchi bazasi bo'ladi. Agar foydalanuvchi konteynerni siljitsa, barcha bolalar shakllari u bilan birga harakat qiladi, bu esa dastur interfeysini tartibli va o'zini o'zi ta'minlaydi. Ikkinchidan, bundan ham muhimi, foydalanuvchi bir vaqtning o'zida bir nechta hujjatlar bilan ishlashi mumkin. MDI ilovalari sizga bir xil shakldagi bir nechta nusxalarni ishlatishga imkon beradi, bu sizning dasturlaringiz samaradorligini va moslashuvchanligini oshiradi. DASTURLASH 2 9 Har bir yuklangan quyi oynasi ma'lum miqdordagi operativ xotirani egallaydi. Shuning uchun, agar siz dasturda quyi oynalarining bir nechta namunalarini intensiv ravishda ishlatmoqchi bo'lsangiz, dastur kodi va ulardagi boshqarish vositalarining sonini kamaytirishingiz kerak. Aks holda, dastur RAM yetishmasligi tufayli kompyuterni sezilarli darajada sekinlashtirishi mumkin. Bosh MDI shakli barcha quyi oynalari joylashgan konteynerdir. Shuning uchun, quyi oynalarini yaratish uchun u javobgar. Bundan tashqari, asboblar paneli, holatlar paneli va boshqalar kabi umumiy interfeys elementlari odatda ota shaklida saqlanadi. Keling, ro'yxatni ko'rib chiqaylik. Birinchidan, Dim deklaratsiyasida ob'ekt o'zgaruvchisining nomi ko'rsatilgan (ob'ektning o'zgaruvchisi), bu forma nusxasini o'z ichiga oladi; Dim deklaratsiyasida Yangi kalit so'z ishlatiladi. Keyin yaratilgan shaklning sarlavhasi hosil bo'ladi (mulk .Text). Shaklni ekranda ko'rsatish uchun ob'ekt o'zgaruvchisi yaratilgandan so'ng, shaklni ko'rsatish uchun Show () usuli qo'llaniladi. Biroq, shakl nomi o'rniga, unga ob'ekt o'zgaruvchisi nomi beriladi. Va nihoyat, ba'zi foydali ma'lumotlar. MDI dasturlari bilan ishlashda ikkita maxsus kalit so'zlar keng qo'llaniladi - Me va ActiveMdiChild. Me kalit so'zi unga murojaat qilish uchun har qanday shaklda ishlatiladi. Bosh shaklining xususiyati ActiveMdiChild hozirgi faol quyi shakliga ko'rsatgichni o'z ichiga oladi. DASTURLASH 2 10 Visual C++ dasturlarida OLE konteyneridan foydalanish. Visual C++ OLE moslamalarni foydalanish misolini ta’riflaydi. OLE konteyneri yordamida ilovalar MFC platformasida amalga oshiriladi. OLE obyektlar eng teztez murakkab xujjat qismlari sifatida ajratiladi. Hujjatlarga ko’ra Microsoft Office ilovalari (Excel, Word, PowerPoint va boshqalar) yordamida yaratilgan fayllar kiradi. Biroq, Microsoft Office hujjatlarining o’zi boshqa ilovalarda OLE obyektlari sifatida ishlatilishi mumkin. Misol sifatida, Visual Studio yangi MFC dastur loyihasini yaratib ko’ring (-rasmga qarang). DASTURLASH 2 11 Keyingi qadam muloqot oynasida, kelajakda qo’llash asoslarini tanlash. Joriy dastur “hujjat-ko’rinish” arxitekturasidan foydalanib yaratilishi kerak. Ilova interfeysi bitta hujjat yoki ko’p hujjat bo’lishi mumkin. Shundan so’ng “keyingi” tugmasini bosib va kompozit hujjatlarini konteyner sifatida qo’llab-quvvatlash variantini qo’llash lozim. Bundan tashqari, faol hujjat konteyner hususiyati o’rnatish kerak (-rasmga qarang) DASTURLASH 2 12 Quyidagi video yordamida Visual C++ muhitida ko’p oynali muhit, ya’ni MDI yaratish jarayonini kuzatishingiz mumkin DASTURLASH 2 13 E’TIBORINGIZ UCHUN RAXMAT! 14