SlideShare a Scribd company logo
1 of 6
Download to read offline
VCP413                                                       Лекцийн материал

                                 Лекц №13, 14

                              Сэдэв: GDI ãðàôèê

   1. Windows программчлалыг GDI-ээр загварчлах нь

GDI нь анх 1992 онд Windows-ийн 16bit-ийн үйлдлийн системд зориулагдан гарч
ирсэн ба одоогийн бидний хэрэглэдэг .NET хүртлээ хөгжөөд байна. 2008 оны 08
сарын байдлаар GDI 9.0 хувилбар гарсан ба 2010 онд түүний 10.х хувилбар нь
гарна. GDI нь Win32 сайжруулж гарч ирсэн ба Windows төрлийн үйлдлийн системд
зориулсан application-уудыг хөгжүүлэх бэлэн классуудын сан юм. C++ хэл дээр
бичигдсэн ба 200-аас илүү класстай. Классууд нь цонх, menu, dialog box, үндсэн
оролт гаралтын гүйцэтгэл, өгөгдөл хадгалалт зэргийг удирдах шаардлагатай
кодуудаар хангагдсан. GDI-ыг МFC-ын бэлэн объектуудыг хэрэглэх эсвэл шинээр
объект үүсгэх, GDI-ийн классуудаас класс удамшуулан удамшсан классынхаа
объектыг хэрэглэх замаар ашиглана. GDI-ээс класс удамшуулахад удамших класс
нь цонх болон түүнтэй холбоотой бүхий лүйлдлүүдийг хийж чадах учраас
системийн шаардлагаас хамааран удамших классд гишүүн өгөгдөл болон
функцуудыг л нэмж өгнө. МFC-ээр програмчлах ерөнхий зарчим нь цонх нь өөр
дээрээ байх control-уудыг өөрийн классын гишүүдтэй холбон тэднийг удирдах
үйлдлүүдийг тодорхойлох явдал юм. GDI-ийг хөгжүүлэх үндсэн хөгжүүлэлтийн
орчин     нь Visual     Studio 6.0 бөгөөд  энэхүү IDE(integrated    development
environment буюу нэгдсэн хөгжүүлэлтйиг орчин) дээр хэрэглэгч кодоо гараар үүсгэх
эсвэл бэлэн график хэрэгслүүдийг ашиглан программчилна.
   2.

      GDI-ийн классын сангийн ерөнхий классууд болон тодорхойлолтууд
CObject GDI-ийн ихэнх класуудын үндсэн класс.
CcmdTarget Windows API-ийн message буюу зурвасын классуудыг encapsule
хийсэн буюу багцалсан. Хэрвээ message-тэй холбоотой class үүсгэх бол энэ class-
аас удамшуулна.
    Сobject классаас удамшсан
    Win32 зурвасуудыг хангадаг

   3. CWinApp GDI windows application-ийг байгуулах,      эхлүүлэх,   ажлуулах,
      зогсоох зэрэг үйлдлийг зохион байгуулах класс.
    Application хязгаар доторхи өгөгдлүүдийг хадгалдаг
    Standart cursor болон icon рүү хандана
    Windows Registry ба *.ini файлууд руу хандана

CWnd Windows API функцууд, өгөгдлийн төрлүүд болон цонх байгуулахад
хэрэглэгдэх бусад классуудыг encapsule хийсэн.
    CcmdTarget-аас удамшсан.
    Бүх цонхны үндсэн класс ба доорхи классууд удамшина
   Control классууд(CButton, CEdit, CStatic гэх мэт)
   CView класс


                                       1
VCP413                                                        Лекцийн материал

   CDialog класс
   CPropertySheet класс
   CSplitterWnd класс
   CControlBar класс
   CFrameWnd класс
    Цонхны хэмжээ болон байрлал өөрчлөх
    CWnd классын ерөнхий хэрэглэгдэх функцууд
                   ShowWindow –Цонхыг харуулах функц бөгөөд үндсэн 10
                   параметр авах боломжтой үүнээс SW_HIDEбуюу цонхыг нуух,
                   SW_SHOW буюу цонхыг харуулах параметрыг ихэнхдээ
                   хэрэглэдэг
                   SetWindowText- Цонхны title bar дээр гарах гарчгийг тохируулна
                   GetwindowText- Цонхны title bar дээр гарах гарчгийг буцаана
                   MoveWindow- Цонхыг шинэ байрлалд шилжүүлнэ
                   SetFont –Цонхон дээр гарах текстийн фонтыг тодорхойлно

   4. CObject-оос удамшаагүй классууд




Control болон түүний классууд
BUTTON control- класс нь CButton.
Button-ы 3 төрөл байдаг
   1. Push Button- дарагддаг button
   2. Radio Button- Групплэгдсэн button-уудаас нэгийг сонгох
   3.CheckBox- Групплэгдсэн button-уудаас олноор нь сонгох
   EDIT control-класс нь CEDIT
LIST-BOX ба COMBO-BOX –класс нь CListBox
       List Box нь их хэмжээний сонгогддог item-үүдийн жагсаалтыг агуулах ба
олон item-ийг сонгож болох ба defaultүедээ 1 item-ийг сонгоно
GDI-ийн өөр нэг онцлог бол глобал функц болон макрог ашигладаг. Глобал функц
нь Afx гэсэн prefix буюу угтвар хэрэглэдэг. Жишээ нь AfxMessageBox() - энэ функц
нь глобал функц учраас class-ын объект үүсэхээс өмнө хэрэглэгч рүү Мessage Box-
ийг гаргаж чадна. Харин макрог ашиглахдаа #define гэх препроцессорын командыг

                                       2
VCP413                                                        Лекцийн материал

ашиглах ба бичихдээ том үсгээр бичдэг. Жишээ нь: BEGIN_MESSAGE_MAP();
END_MESSAGE_MAP();энэ 2 макро нь class доторхи event-үүдийн эхлэх төгсөхийг
заанa.

   5. GDI AppWizard
GDI нь цонх болон түүн дээрхи control-уудыг классаар загварчилдгийг дээрхи
классуудаас харлаа. Тиймээс applicationбуюу программ хийхийн тулд үүсгэх
классуудаа project дотор нэгтгэж өгөх хэрэгтэй. GDI AppWizard нь энэхүү project-
ийг автоматаар үүсгэнэ. Wizard нь project файлын систем болон бүтэц мөн project
доторх файлуудын функциональ хамаарлыг бий болгодог.
Шинээр project үүсгэх дараалал
   1. File   menu New -->         Project  tab сонгоход   New диалог   box   –ийг
       харуулах ба GDI AppWizard(exe) сонгоод ProjectName textbox-д Project-ийн
       нэрийг оруулаад OK товчин дээр дарна.
   2. Application-ы төрлийг сонгох цонх гарч ирэх ба 3 төрлийн Application үүсгэх
       боломжтой.
              Single document- Ганц л document-тай ажиллана
              Multiple Document- Олон document-тай ажиллах боломжтой
              Dialog- Dialog-тай ажиллах
   3. Finish товчийг дарснаар default тохируулгатай application үүснэ. Хэрэглэгч
       мөн Next товчийг даран defaultтохируулгыг өөрчилж болно.
Үүний үр дүнд AppWizard нь Application-ы төрлөөс хамааран доорхи классуудыг
автоматаар үүсгэнэ.
    Single Document - CNameApp, CNameDoc, CNameView, CNameFrame
              CNameApp класс        нь Application класс  бөгөөд CWinApp классаас
              удамшина
              CNameDoc класс нь CDocument классаас удамших Document класс
              ба Application-ийг удирдах классуудыг удирдана
              CNameView        –      CView классаас     удамших View класс    ба
              хэрэглэгч рүү document-ийн         тухай    мэдээллийг     харуулах
              ба document ба хэрэглэгчийн хоорондох харилцааг удирдана
              CNameFrame класс нь CFrmWnd классаас удамших Frame класс
    Multiple document- CNameDoc, CNameView, CNameFrame үүсгэхээс
       гадна CChildFrame классыг үүсгэнэ
    Dialog Based – CNameApp, CNameDlg
Жич: Классын нэрний дунд бичигдсэн Name-ийн оронд Project-ийн нэр байна.
Multiple document болон Single Document –ийг үүсгэхэд menu автоматаар үүснэ.




                                       3
VCP413                                                        Лекцийн материал




Энэ нь dialog учраас menu-гүй байна.
  1. Class View буюу программд хэрэглэгдэх классууд болон түүний гишүүн
      өгөгдөл болон функцуудыг харуулна Хэрэв программд шинээр class нэмэх
      бол View--> ClassWizard сонгох буюу Ctrl+W гэсэн гарны хослолыг дарж
      шинээр класс үүсгэх, үүссэн класс дээр шинээр гишүүн функц болон гишүүн
      өгөгдөл нэмнэ.
  2. Программд хэрэглэгдэж буй нөөцүүдийг харуулна. Dialog, Menu, Icon, string
      table гэх мэт resource-уудыг харуулна. Хэрэв программд
      шинээр resource нэмэх бол Insert Resource сонгох буюу Ctrl+R даран
      оруулах боломжтой
  3. Үүссэн файлуудыг харуулна
  4. Client Area буюу хэрэглэгчийн талбар
  5. Control-уудыг агуулсан toolbox
  6.
      Eрөнхий хэрэглэгдэх control-ууд




   7. Control-уудыг үүсгэх болон класстай холбох
Control үүсгэхийн тулд хэрэглэгдэх control-уудаа toolbox-оос mouse-ны зүүн товчин
дээр даран чирж client area буюу хэрэглэгчийн форм дээр байрлуулах ба control-
ын шинжтэй холбоотой өөрчлөлтүүдийг control-ийн дээр баруун товч даран
үүсэх menu-ний properties руу   орж     өөрчилнэ.     Харин control-ийг  класстай

                                       4
VCP413                                                         Лекцийн материал

холбохдоо ClassWizard руу      орон control-ийн үүсгэх event-ийг class-ын гишүүн
функцтэй эсвэл control-ийг class-ийн гишүүн өгөгдөлтэй холбож болно.
Ингэснээрclass-ууд нь control-той харьцах боломжтой болно.
Button control
Button control үүсгэхийн тулд эхлээд resourse view-ээс dialog-оо сонгоод toolbox-
оос button-оо чирч авчирна.Button дээр гарах текстийг өөрчилэхийн тулд Button
control дээр mouse-ны баруун товчийг даран General tab-ийг сонгоход доорхи цонх
үүсэх ба Caption хэсэг дэх текстийг өөрчилнэ. Харин ID хэсэг нь тухайн control-ийн
программ дах бусад control-оос ялгагдах ID нь бөгөөд хэрэглэгч үүнийг
бусад control-ын ID –тай давхцуулахгүйгээр өөрчилж болно. Button-ы загвар болон
түүн дээр харагдах текстийн байрлал зэргийг Styles, Extended Styles tab доторхи
тохируулгуудаас өөрчилэх боломжтой.




Button дээр    дарахад        үүсэх event-ийг class-ын   гишүүн       функцтай
холбохдоо ClassWizard руу    орон control-оо сонгоод Messages хэсгээс control-ын

үүсгэх event-ийг сонгоод                    товчин дээр дарснаар доорхи цонх
үүснэ




  Энд class-ын гишүүн функцын нэрийг бичиж оруулснаар классд шинээр гишүүн
             функцыг нэмнэ. Харин энэ функц дотор хийгдэх үйлдлээ


                                        5
VCP413                                                       Лекцийн материал



тодорхойлохдоо                  товчин дээр дарах ба классын гишүүн функцын
тодорхойлолтыг доор үзүүлсэнтэй ижлээр харуулна




Харлуулсан хэсэгт хэрэглэгч хийх үйлдлээ тодорхойлно.
Edit Box control
Энэхүү control-оо классын гишүүн өгөгдэлтэй холбон класстай өгөгдөл солилцоно.
Үүний тулд ClassWizardруугаа орон Member Variables tab-ыг сонгоод control-

ынхоо ID сонгон                  товчин дээр даран гарч ирэх цонхонд гишүүн
өгөгдлийн нэр, бүлэг, төрөл зэргийг тохируулан үүсгэх ба үүссэн гишүүн
өгөгдлийг Class View-ээс харж болно.




Дараа     нь control-оос   утга   авах   эсвэл control руу  утга    дамуулахаас
хамааран UpdateData гэх CWnd классын гишүүн функцыг ашиглах ба энэ функц
нь dialog-ийг үүсгэхдээ өгөгдлийг тодорхойлох эсвэл dialog-оос утга буцааж авах
тохиолдолд хэрэглэнэ. Энэхүү функц нь гаднаас нэг фараметр авах ба control-оос
утга дамжуулах бол “true” эсрэгээр утга авах бол “false” гэсэн фараметрыг
дамжуулна.




                                      6

More Related Content

Similar to Lecture13,14 (20)

Sw206 lec
Sw206 lecSw206 lec
Sw206 lec
 
визуаль програмчлал тест
визуаль програмчлал тествизуаль програмчлал тест
визуаль програмчлал тест
 
Delphi
DelphiDelphi
Delphi
 
Sedev 1
Sedev 1Sedev 1
Sedev 1
 
Лабораторийн ажил 5
Лабораторийн ажил 5Лабораторийн ажил 5
Лабораторийн ажил 5
 
7 8
7 87 8
7 8
 
12
1212
12
 
C++ суулгах
C++ суулгахC++ суулгах
C++ суулгах
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 
Lecture maker taniltsuulga
Lecture maker taniltsuulgaLecture maker taniltsuulga
Lecture maker taniltsuulga
 
001 vba
001 vba001 vba
001 vba
 
Лабораторийн ажил 4
Лабораторийн ажил 4Лабораторийн ажил 4
Лабораторийн ажил 4
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол ном
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол ном
 
Autocad 140430000617-phpapp02
Autocad 140430000617-phpapp02Autocad 140430000617-phpapp02
Autocad 140430000617-phpapp02
 
Access sem2
Access sem2Access sem2
Access sem2
 
Vb.net mon1
Vb.net mon1Vb.net mon1
Vb.net mon1
 
Excel програмын тухай ойлголт 1
Excel програмын тухай ойлголт 1Excel програмын тухай ойлголт 1
Excel програмын тухай ойлголт 1
 

More from orgil

Its150 l3
Its150 l3Its150 l3
Its150 l3orgil
 
Its150 l1
Its150 l1Its150 l1
Its150 l1orgil
 
Test
TestTest
Testorgil
 
Example excel2007
Example excel2007Example excel2007
Example excel2007orgil
 
Test7
Test7Test7
Test7orgil
 
Bodlogiin code
Bodlogiin codeBodlogiin code
Bodlogiin codeorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Bodlogo
BodlogoBodlogo
Bodlogoorgil
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007orgil
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007orgil
 
Test5
Test5Test5
Test5orgil
 
Test7
Test7Test7
Test7orgil
 
Test7
Test7Test7
Test7orgil
 
Test7
Test7Test7
Test7orgil
 
Test7
Test7Test7
Test7orgil
 
Test6
Test6Test6
Test6orgil
 
Test4
Test4Test4
Test4orgil
 
Test1
Test1Test1
Test1orgil
 

More from orgil (20)

Its150 l3
Its150 l3Its150 l3
Its150 l3
 
Its150 l1
Its150 l1Its150 l1
Its150 l1
 
Test
TestTest
Test
 
Example excel2007
Example excel2007Example excel2007
Example excel2007
 
Test7
Test7Test7
Test7
 
Bodlogiin code
Bodlogiin codeBodlogiin code
Bodlogiin code
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Bodlogo
BodlogoBodlogo
Bodlogo
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007
 
Its150 l10powerpoint2007
Its150 l10powerpoint2007Its150 l10powerpoint2007
Its150 l10powerpoint2007
 
Test5
Test5Test5
Test5
 
Test7
Test7Test7
Test7
 
Test7
Test7Test7
Test7
 
Test7
Test7Test7
Test7
 
Test7
Test7Test7
Test7
 
Test6
Test6Test6
Test6
 
Test4
Test4Test4
Test4
 
Test1
Test1Test1
Test1
 
Bd5
Bd5Bd5
Bd5
 

Lecture13,14

  • 1. VCP413 Лекцийн материал Лекц №13, 14 Сэдэв: GDI ãðàôèê 1. Windows программчлалыг GDI-ээр загварчлах нь GDI нь анх 1992 онд Windows-ийн 16bit-ийн үйлдлийн системд зориулагдан гарч ирсэн ба одоогийн бидний хэрэглэдэг .NET хүртлээ хөгжөөд байна. 2008 оны 08 сарын байдлаар GDI 9.0 хувилбар гарсан ба 2010 онд түүний 10.х хувилбар нь гарна. GDI нь Win32 сайжруулж гарч ирсэн ба Windows төрлийн үйлдлийн системд зориулсан application-уудыг хөгжүүлэх бэлэн классуудын сан юм. C++ хэл дээр бичигдсэн ба 200-аас илүү класстай. Классууд нь цонх, menu, dialog box, үндсэн оролт гаралтын гүйцэтгэл, өгөгдөл хадгалалт зэргийг удирдах шаардлагатай кодуудаар хангагдсан. GDI-ыг МFC-ын бэлэн объектуудыг хэрэглэх эсвэл шинээр объект үүсгэх, GDI-ийн классуудаас класс удамшуулан удамшсан классынхаа объектыг хэрэглэх замаар ашиглана. GDI-ээс класс удамшуулахад удамших класс нь цонх болон түүнтэй холбоотой бүхий лүйлдлүүдийг хийж чадах учраас системийн шаардлагаас хамааран удамших классд гишүүн өгөгдөл болон функцуудыг л нэмж өгнө. МFC-ээр програмчлах ерөнхий зарчим нь цонх нь өөр дээрээ байх control-уудыг өөрийн классын гишүүдтэй холбон тэднийг удирдах үйлдлүүдийг тодорхойлох явдал юм. GDI-ийг хөгжүүлэх үндсэн хөгжүүлэлтийн орчин нь Visual Studio 6.0 бөгөөд энэхүү IDE(integrated development environment буюу нэгдсэн хөгжүүлэлтйиг орчин) дээр хэрэглэгч кодоо гараар үүсгэх эсвэл бэлэн график хэрэгслүүдийг ашиглан программчилна. 2. GDI-ийн классын сангийн ерөнхий классууд болон тодорхойлолтууд CObject GDI-ийн ихэнх класуудын үндсэн класс. CcmdTarget Windows API-ийн message буюу зурвасын классуудыг encapsule хийсэн буюу багцалсан. Хэрвээ message-тэй холбоотой class үүсгэх бол энэ class- аас удамшуулна.  Сobject классаас удамшсан  Win32 зурвасуудыг хангадаг 3. CWinApp GDI windows application-ийг байгуулах, эхлүүлэх, ажлуулах, зогсоох зэрэг үйлдлийг зохион байгуулах класс.  Application хязгаар доторхи өгөгдлүүдийг хадгалдаг  Standart cursor болон icon рүү хандана  Windows Registry ба *.ini файлууд руу хандана CWnd Windows API функцууд, өгөгдлийн төрлүүд болон цонх байгуулахад хэрэглэгдэх бусад классуудыг encapsule хийсэн.  CcmdTarget-аас удамшсан.  Бүх цонхны үндсэн класс ба доорхи классууд удамшина Control классууд(CButton, CEdit, CStatic гэх мэт) CView класс 1
  • 2. VCP413 Лекцийн материал CDialog класс CPropertySheet класс CSplitterWnd класс CControlBar класс CFrameWnd класс  Цонхны хэмжээ болон байрлал өөрчлөх  CWnd классын ерөнхий хэрэглэгдэх функцууд ShowWindow –Цонхыг харуулах функц бөгөөд үндсэн 10 параметр авах боломжтой үүнээс SW_HIDEбуюу цонхыг нуух, SW_SHOW буюу цонхыг харуулах параметрыг ихэнхдээ хэрэглэдэг SetWindowText- Цонхны title bar дээр гарах гарчгийг тохируулна GetwindowText- Цонхны title bar дээр гарах гарчгийг буцаана MoveWindow- Цонхыг шинэ байрлалд шилжүүлнэ SetFont –Цонхон дээр гарах текстийн фонтыг тодорхойлно 4. CObject-оос удамшаагүй классууд Control болон түүний классууд BUTTON control- класс нь CButton. Button-ы 3 төрөл байдаг 1. Push Button- дарагддаг button 2. Radio Button- Групплэгдсэн button-уудаас нэгийг сонгох 3.CheckBox- Групплэгдсэн button-уудаас олноор нь сонгох EDIT control-класс нь CEDIT LIST-BOX ба COMBO-BOX –класс нь CListBox List Box нь их хэмжээний сонгогддог item-үүдийн жагсаалтыг агуулах ба олон item-ийг сонгож болох ба defaultүедээ 1 item-ийг сонгоно GDI-ийн өөр нэг онцлог бол глобал функц болон макрог ашигладаг. Глобал функц нь Afx гэсэн prefix буюу угтвар хэрэглэдэг. Жишээ нь AfxMessageBox() - энэ функц нь глобал функц учраас class-ын объект үүсэхээс өмнө хэрэглэгч рүү Мessage Box- ийг гаргаж чадна. Харин макрог ашиглахдаа #define гэх препроцессорын командыг 2
  • 3. VCP413 Лекцийн материал ашиглах ба бичихдээ том үсгээр бичдэг. Жишээ нь: BEGIN_MESSAGE_MAP(); END_MESSAGE_MAP();энэ 2 макро нь class доторхи event-үүдийн эхлэх төгсөхийг заанa. 5. GDI AppWizard GDI нь цонх болон түүн дээрхи control-уудыг классаар загварчилдгийг дээрхи классуудаас харлаа. Тиймээс applicationбуюу программ хийхийн тулд үүсгэх классуудаа project дотор нэгтгэж өгөх хэрэгтэй. GDI AppWizard нь энэхүү project- ийг автоматаар үүсгэнэ. Wizard нь project файлын систем болон бүтэц мөн project доторх файлуудын функциональ хамаарлыг бий болгодог. Шинээр project үүсгэх дараалал 1. File menu New --> Project tab сонгоход New диалог box –ийг харуулах ба GDI AppWizard(exe) сонгоод ProjectName textbox-д Project-ийн нэрийг оруулаад OK товчин дээр дарна. 2. Application-ы төрлийг сонгох цонх гарч ирэх ба 3 төрлийн Application үүсгэх боломжтой. Single document- Ганц л document-тай ажиллана Multiple Document- Олон document-тай ажиллах боломжтой Dialog- Dialog-тай ажиллах 3. Finish товчийг дарснаар default тохируулгатай application үүснэ. Хэрэглэгч мөн Next товчийг даран defaultтохируулгыг өөрчилж болно. Үүний үр дүнд AppWizard нь Application-ы төрлөөс хамааран доорхи классуудыг автоматаар үүсгэнэ.  Single Document - CNameApp, CNameDoc, CNameView, CNameFrame CNameApp класс нь Application класс бөгөөд CWinApp классаас удамшина CNameDoc класс нь CDocument классаас удамших Document класс ба Application-ийг удирдах классуудыг удирдана CNameView – CView классаас удамших View класс ба хэрэглэгч рүү document-ийн тухай мэдээллийг харуулах ба document ба хэрэглэгчийн хоорондох харилцааг удирдана CNameFrame класс нь CFrmWnd классаас удамших Frame класс  Multiple document- CNameDoc, CNameView, CNameFrame үүсгэхээс гадна CChildFrame классыг үүсгэнэ  Dialog Based – CNameApp, CNameDlg Жич: Классын нэрний дунд бичигдсэн Name-ийн оронд Project-ийн нэр байна. Multiple document болон Single Document –ийг үүсгэхэд menu автоматаар үүснэ. 3
  • 4. VCP413 Лекцийн материал Энэ нь dialog учраас menu-гүй байна. 1. Class View буюу программд хэрэглэгдэх классууд болон түүний гишүүн өгөгдөл болон функцуудыг харуулна Хэрэв программд шинээр class нэмэх бол View--> ClassWizard сонгох буюу Ctrl+W гэсэн гарны хослолыг дарж шинээр класс үүсгэх, үүссэн класс дээр шинээр гишүүн функц болон гишүүн өгөгдөл нэмнэ. 2. Программд хэрэглэгдэж буй нөөцүүдийг харуулна. Dialog, Menu, Icon, string table гэх мэт resource-уудыг харуулна. Хэрэв программд шинээр resource нэмэх бол Insert Resource сонгох буюу Ctrl+R даран оруулах боломжтой 3. Үүссэн файлуудыг харуулна 4. Client Area буюу хэрэглэгчийн талбар 5. Control-уудыг агуулсан toolbox 6. Eрөнхий хэрэглэгдэх control-ууд 7. Control-уудыг үүсгэх болон класстай холбох Control үүсгэхийн тулд хэрэглэгдэх control-уудаа toolbox-оос mouse-ны зүүн товчин дээр даран чирж client area буюу хэрэглэгчийн форм дээр байрлуулах ба control- ын шинжтэй холбоотой өөрчлөлтүүдийг control-ийн дээр баруун товч даран үүсэх menu-ний properties руу орж өөрчилнэ. Харин control-ийг класстай 4
  • 5. VCP413 Лекцийн материал холбохдоо ClassWizard руу орон control-ийн үүсгэх event-ийг class-ын гишүүн функцтэй эсвэл control-ийг class-ийн гишүүн өгөгдөлтэй холбож болно. Ингэснээрclass-ууд нь control-той харьцах боломжтой болно. Button control Button control үүсгэхийн тулд эхлээд resourse view-ээс dialog-оо сонгоод toolbox- оос button-оо чирч авчирна.Button дээр гарах текстийг өөрчилэхийн тулд Button control дээр mouse-ны баруун товчийг даран General tab-ийг сонгоход доорхи цонх үүсэх ба Caption хэсэг дэх текстийг өөрчилнэ. Харин ID хэсэг нь тухайн control-ийн программ дах бусад control-оос ялгагдах ID нь бөгөөд хэрэглэгч үүнийг бусад control-ын ID –тай давхцуулахгүйгээр өөрчилж болно. Button-ы загвар болон түүн дээр харагдах текстийн байрлал зэргийг Styles, Extended Styles tab доторхи тохируулгуудаас өөрчилэх боломжтой. Button дээр дарахад үүсэх event-ийг class-ын гишүүн функцтай холбохдоо ClassWizard руу орон control-оо сонгоод Messages хэсгээс control-ын үүсгэх event-ийг сонгоод товчин дээр дарснаар доорхи цонх үүснэ Энд class-ын гишүүн функцын нэрийг бичиж оруулснаар классд шинээр гишүүн функцыг нэмнэ. Харин энэ функц дотор хийгдэх үйлдлээ 5
  • 6. VCP413 Лекцийн материал тодорхойлохдоо товчин дээр дарах ба классын гишүүн функцын тодорхойлолтыг доор үзүүлсэнтэй ижлээр харуулна Харлуулсан хэсэгт хэрэглэгч хийх үйлдлээ тодорхойлно. Edit Box control Энэхүү control-оо классын гишүүн өгөгдэлтэй холбон класстай өгөгдөл солилцоно. Үүний тулд ClassWizardруугаа орон Member Variables tab-ыг сонгоод control- ынхоо ID сонгон товчин дээр даран гарч ирэх цонхонд гишүүн өгөгдлийн нэр, бүлэг, төрөл зэргийг тохируулан үүсгэх ба үүссэн гишүүн өгөгдлийг Class View-ээс харж болно. Дараа нь control-оос утга авах эсвэл control руу утга дамуулахаас хамааран UpdateData гэх CWnd классын гишүүн функцыг ашиглах ба энэ функц нь dialog-ийг үүсгэхдээ өгөгдлийг тодорхойлох эсвэл dialog-оос утга буцааж авах тохиолдолд хэрэглэнэ. Энэхүү функц нь гаднаас нэг фараметр авах ба control-оос утга дамжуулах бол “true” эсрэгээр утга авах бол “false” гэсэн фараметрыг дамжуулна. 6