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



Download 257,46 Kb.
bet5/6
Sana19.05.2023
Hajmi257,46 Kb.
#941390
1   2   3   4   5   6
Bog'liq
hculo6xembIyPJ0gSgbvLwsvvY15kOJonSoZ35Bb

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. Download 257,46 Kb.

    Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish