Mavzu: ole, mfc texnologiyalari. Ko’p oynali muhitlar bilan ishlash. Visual C++ muhitida ko’p oynali muhit yaratish. Reja



Yüklə 257,46 Kb.
səhifə5/6
tarix03.06.2023
ölçüsü257,46 Kb.
#127741
1   2   3   4   5   6
Mavzu ole, mfc texnologiyalari. Ko’p oynali muhitlar bilan ishl

Kaskadli tartibga solish:




Gorizontal tartibga solish:



Vertikal tartibga solish:

Windows Forms dagi MDI dasturlarini qo'llab-quvvatlash bilan bog'liq funktsiyalar juda sodda ko'rinishi mumkin, ammo uning imkoniyatlari aslida har qanday murakkablikdagi muammolarni hal qilish uchun yetarli.



  1. Visual C++ muhitida ko’p oynali muhit yaratish.

MFC kutubxonasi ikki xil - bitta hujjat (Single Document Interface, SDI) va MDI interfeyslariga asoslangan dasturlarni qo'llab-quvvatlaydi. SDI dasturida faqat bitta oyna mavjud va bir vaqtning o'zida faqat bitta hujjatni yuklab olish mumkin. Bundan tashqari, hujjat bilan ishlash uchun modal va modal bo'lmagan dialoglarni ishlatish mumkin. SDI dasturining yaxshi namunasi bu Notepad. SDI-dan farqli o'laroq, MDI dasturida bir nechta "bolalar derazalari" mavjud, ularning har biri alohida hujjat bilan ishlaydi. MDI dasturiga misol MS Word bo'lishi mumkin.
MDI dasturining asosiy oynasi turli xil hujjatlar (bolalar oynalari) joylashtirilgan ish stoliga o'xshaydi. Hujjatlari bo'lgan bunday derazalarni "stol" ga turli xil usulda (kaskad, mozaik va boshqalar) joylashtirilgan asosiy oyna ichidagi piktogrammalarga kamaytirish mumkin.

Asosiy MDI ilovasi AppWizard yordamida osongina yaratiladi. Ikkinchisini ishga tushirganda, AppWizard - 1-qadam muloqot oynasida, MDI dastur turi sukut bo'yicha o'rnatiladi.



MFC dasturini yaratishda birinchi AppWizard -dialog oynasi.

SDI va MDI dasturlarini ishga tushirish jarayoni bir xil. CWinApp sinfidan olingan dastur obyekti InitInstance deb nomlangan bekor qilingan a'zo funktsiyasiga ega. Ushbu funktsiya SDI dasturining o'xshash funktsiyasidan farq qiladi. Ushbu funktsiya AddDocTemplate-ni chaqirish bilan boshlanadi. Bu quyidagicha:


CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CmultiDocTemplate(
IDR_XXTYPE,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);

SDI dasturlarida deraza romlarining bitta sinfi va ushbu sinfning bitta obyekti mavjud va AppWizard CFrameWnd-dan olingan CMainFrame nomli sinf yaratadi. MDI dasturida deraza romlarining ikkita klassi va ko'pgina ramka obyektlari mavjud.


MDI dasturida CShildFrame bolalar oynasi sinfi mavjud va har safar yangi hujjat ochilganda dastur asosiy oynada hujjatni ko'rsatish uchun ushbu sinfning yangi namunasini yaratadi.



MDI dasturidagi hoshiya-oyna va ko'rsatish oynalarining o'zaro bog'liqligi.
SDI dasturida CMainFrame obyekti dasturni ramkaga soladi va ko'rinish obyektini o'z ichiga oladi. MDI dasturida bu ikki narsa bir-biridan ajratilgan: CMainFrame InitInstance-da yaratilgan va displey oynasi CChildFrame ichida joylashgan. AppWizard tomonidan yaratilgan kod quyidagi shaklga ega:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();


m_pMainWnd ma'lumotlar elementi CWinApp sinfiga tegishli. InitInstance funktsiyasi ushbu ma'lumotlar elementiga asosiy ramka oynasida ko'rsatgichni tayinlaydi. Shuning uchun, agar bunday ko'rsatgich kerak bo'lsa, biz m_pMainWnd-ga global AfxGetApp funktsiyasi orqali kirishimiz mumkin.

MDI dasturida ikkita asosiy menyu mavjud: bitta ko'rinish faqat asosiy oynani ochishda ishlatiladi (bolalar uchun ochiq oynalarsiz), ikkinchisi - kamida bitta bolalar oynasini ochishda ishlatiladi. Bunday holda, ikkita alohida menyu resurslari ishlatiladi: IDR_MAINFRAME va IDR_TESTTYPE (bu yerda TEST - bu dasturning nomi). Mana bu ikkita quyi chiziqqa asoslangan manbalar quyidagicha:


IDR_MAINFRAME
"Test" // dastur asosiy oynasining sarlavhasi
IDR_TESTTYPE
\n // dastur oynasi sarlavhasi (sarlavhada paydo bo'ladi// quyi oynasi)
Test\n // hujjatning “по умолчанию” sarlavhasi
Test\n // hujjat turining nomi
Test Files (*.dat)\n // hujjat turi uchun tavsif va filtr
.dat\n // ushbu turdagi hujjat fayllari uchun kengaytma
Test.Document\n // ro'yxatga olish kitobida fayl turi identifikatori
Test Document // registrda fayl turining tavsifi

Agar Test.rc manba fayliga qarasangiz, ushbu pastki chiziqlar bitta uzun chiziqqa birlashtirilganligini ko'ramiz. Ilova sarlavhasi IDR_MAINFRAME manbasidan olingan va hujjat ochilganda, ushbu hujjatning fayl nomi ushbu sarlavhaga qo'shiladi.


Bo'sh hujjatni yaratishda MDI dasturi OnFileNew-ga qo'ng'iroq qiladi. Asosiy freym oynasi allaqachon yaratilgan, shuning uchun OnFileNew CwinApp sinfining OpenDocumentFile funktsiyasini chaqiradi. Bu sodir bo'lganda quyidagilar:






  1. Yüklə 257,46 Kb.

    Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin