Visual C++ Programming Controls 3
description
Transcript of Visual C++ Programming Controls 3
![Page 1: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/1.jpg)
Visual C++ Programming Controls 3
Department of Digital Contents
Sang Il Park
![Page 2: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/2.jpg)
Outline
β’ Reviewβ Control: Button
β’ Controls 3β Static Controlβ Edit Controlβ List Box Controlβ Combo Box Control
![Page 3: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/3.jpg)
3
Review: Control
β’ νμ€νλ ννμ νΉμ±μ κ°μ§ μλμ°β’ μ¬μ©μμκ² μ λ ₯μ λ°κ±°λ μ 보λ₯Ό 보μ¬μ€
![Page 4: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/4.jpg)
4
Review: μ μ 컨νΈλ‘€
β’ μ μ 컨νΈλ‘€ μ’ λ₯β ν μ€νΈβ νλ μ ( μμΌλ‘ μ±μμ§μ§ μμ μ¬κ°ν ),
μ¬κ°ν ( μμΌλ‘ μ±μμ§ μ¬κ°ν ), μμ΄μ½ , λΉνΈλ§΅ ,ν₯μλ λ©ννμΌ (Enhanced Metafile)
![Page 5: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/5.jpg)
5
Review: νΈμ§ 컨νΈλ‘€
β’ νΈμ§ 컨νΈλ‘€
β’ νΈμ§ 컨νΈλ‘€ μ’ λ₯
![Page 6: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/6.jpg)
Review: νΈμ§ μ½νΈλ‘€μ μ μ΄
⒠컨νΈλ‘€ λ©μμ§λ₯Ό μ£ΌκΈ° μν΄μλβ¦ CEdit νμ μ λ³μλ₯Ό μΆκ°νκ³ μ»¨νΈλ‘€κ³Ό μ°κ²° μ§μ μ°κ²° (DoDataExchange ν¨μ μ΄μ© ) λλ 컨νΈλ‘€μ λ³μ μΆκ° κΈ°λ₯μ μ΄μ©νμ¬ μλμΌλ‘ μΆκ°
![Page 7: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/7.jpg)
7
Review: νΈμ§ 컨νΈλ‘€ μ μ΄ ν¨μ
β’ ν μ€νΈλ₯Ό λ³κ²½νκ±°λ μ λ ₯λ ν μ€νΈλ₯Ό μμλ΄κΈ°
β’ μ λ ₯ κ°λ₯ν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό μ ννκΈ°
β’ κ°μ’ νΈμ§ μμ
m_edit.SetWindowText(" μ΄κΈ°κ°μ λλ€ .");CString str; m_edit.GetWindowText(str);
m_edit.SetLimitText(10);
m_edit.Clear();m_edit.Cut();m_edit.Copy();m_edit.Paste();m_edit.Undo();
![Page 8: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/8.jpg)
8
Review: 리μ€νΈ λ°μ€ 컨νΈλ‘€
⒠리μ€νΈ λ°μ€ 컨νΈλ‘€ μ’ λ₯
β’ μμ± λνμμ
λ¨μΌ μ ν리μ€νΈ λ°μ€
λ€μ€ μ ν리μ€νΈ λ°μ€
![Page 9: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/9.jpg)
9
Review: 리μ€νΈ λ°μ€ 컨νΈλ‘€ μ μ΄ ν¨μ
β’ νλͺ© μΆκ°μ μμ
β’ νλͺ© μ ν
m_list.AddString(" μ¬κ³Ό ");m_list.DeleteString(3);
// λ¨μΌ μ ν 리μ€νΈ λ°μ€ 컨νΈλ‘€μΈ κ²½μ°m_list.SetCurSel(2);
// λ€μ€ μ ν 리μ€νΈ λ°μ€ 컨νΈλ‘€μΈ κ²½μ°m_list.SetSel(2);m_list.SetSel(3, FALSE);
![Page 10: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/10.jpg)
10
Review: 리μ€νΈ λ°μ€ 컨νΈλ‘€ μ μ΄ ν¨μ
β’ μ νλ νλͺ© μμλ΄κΈ°
// λ¨μΌ μ ν 리μ€νΈ λ°μ€ 컨νΈλ‘€μΈ κ²½μ°int nIndex = m_list.GetCurSel();if(nIndex != LB_ERR){ CString str; m_list.GetText(nIndex, str);}
// λ€μ€ μ ν 리μ€νΈ λ°μ€ 컨νΈλ‘€μΈ κ²½μ°int nIndex = m_list.GetCaretIndex();if(nIndex != LB_ERR){ CString str; m_list.GetText(nIndex, str);}
![Page 11: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/11.jpg)
Announcement:
⒠보κ°κ³΅κ³ :β 5 μ 29 μΌ ν μμΌβ μ€μ 11 μ 30 λΆ ~1 μ 00 λΆβ μ₯μ : μ¨κ³‘κ΄ 304 νΈ μ€μ΅μ€
![Page 12: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/12.jpg)
12
콀보 λ°μ€ 컨νΈλ‘€ (1/6)
⒠콀보 λ°μ€ 컨νΈλ‘€ μ’ λ₯
λ¨μμ€νμΌ
λλλ€μ΄μ€νμΌ
λλλ€μ΄ 리μ€νΈμ€νμΌ
νΈμ§ 컨νΈλ‘€ μ μ 컨νΈλ‘€
리μ€νΈλ°μ€μ»¨νΈλ‘€
![Page 13: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/13.jpg)
13
콀보 λ°μ€ 컨νΈλ‘€ (2/6)
β’ μμ± λνμμ
![Page 14: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/14.jpg)
14
콀보 λ°μ€ 컨νΈλ‘€ (3/6)
⒠콀보 λ°μ€ 컨νΈλ‘€ μ€νμΌ
콀보 λ°μ€ 컨νΈλ‘€ μ€νμΌ
CBS_AUTOHSCROLLCBS_DISABLENOSCROLLCBS_DROPDOWNCBS_DROPDOWNLISTCBS_HASSTRINGSCBS_LOWERCASECBS_NOINTEGRALHEIGHT
CBS_OEMCONVERTCBS_OWNERDRAWFIXEDCBS_OWNERDRAWVARIABLE
CBS_SIMPLECBS_SORTCBS_UPPERCASE
μλ―Έ
= ES_AUTOHSCROLL= LBS_DISABLENOSCROLLλλλ€μ΄ μ€νμΌλλλ€μ΄ 리μ€νΈ μ€νμΌ= LBS_HASSTRINGS= ES_LOWERCASE= LBS_NOINTEGRALHEIGHT
= ES_OEMCONVERT= LBS_OWNERDRAWFIXED= LBS_OWNERDRAWVARIABLE
λ¨μ μ€νμΌ= LBS_SORT= ES_UPPERCASE
μμ± λνμμμ νλͺ©
Auto HScrollDisable no scrollType: DropdownType: Drop ListHas stringsLowercaseNo integral height
OEM convertOwner draw: FixedOwner draw: Variable
Type: SimpleSortUppercase
![Page 15: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/15.jpg)
15
콀보 λ°μ€ 컨νΈλ‘€ (4/6)
⒠콀보 λ°μ€ 컨νΈλ‘€ ν΅μ§ λ©μμ§
ν΅μ§ λ©μμ§
CBN_CLOSEUP CBN_DBLCLK
CBN_DROPDOWN CBN_EDITCHANGE CBN_EDITUPDATE CBN_ERRSPACE CBN_KILLFOCUSCBN_SELCHANGE CBN_SELENDCANCEL CBN_SELENDOK CBN_SETFOCUS
μλ―Έ
리μ€νΈ λ°μ€κ° λ«νλ€ .μ¬μ©μκ° νλͺ©μ λλΈ ν΄λ¦νμλ€ .
리μ€νΈ λ°μ€κ° μ΄λ¦¬κΈ° μ§μ μ΄λ€ .= EN_EDITCHANGE= EN_EDITUPDATEλ©λͺ¨λ¦¬κ° λΆμ‘±νλ€ .ν€λ³΄λ ν¬μ»€μ€λ₯Ό μμλ€ .= LBN_SELCHANGE = LBN_SELENDCANCEL μ¬μ©μκ° νλͺ©μ μ ννμλ€ .ν€λ³΄λ ν¬μ»€μ€λ₯Ό μ»μλ€ .
μ€νμΌ
λ¨μ λλλ€μ΄
λλλ€μ΄ 리μ€νΈ
![Page 16: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/16.jpg)
16
콀보 λ°μ€ 컨νΈλ‘€ (5/6)
β’ νλͺ© μΆκ°μ μμ
β’ μ νλ νλͺ© μμλ΄κΈ°
m_combo.AddString(" μ¬κ³Ό ");m_combo.DeleteString(3);
int nIndex = m_combo.GetCursel();if(nIndex != CB_ERR){ CString str; m_combo.GetLBText(nIndex, str);}
![Page 17: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/17.jpg)
17
콀보 λ°μ€ 컨νΈλ‘€ (6/6)
β’ μ λ ₯ κ°λ₯ν λ¬Έμμ΄μ κΈΈμ΄ μ ννκΈ°
β’ κ°μ’ νΈμ§ μμ
m_combo.LimitText(10);
m_combo.Clear(); m_combo.Cut();m_combo.Copy();m_combo.Paste();
![Page 18: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/18.jpg)
18
μ€ν¬λ‘€ λ° μ»¨νΈλ‘€ (1/3)
β’ μ€ν¬λ‘€ λ° μ»¨νΈλ‘€β νλ©΄μ μΌμ μμμ μ€ν¬λ‘€νκ±°λ μ ν΄μ§ λ²μμ κ°μ
λ³κ²½μν€λ μ©λλ‘ μ¬μ©
β’ μ€ν¬λ‘€ λ° μ½λ
![Page 19: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/19.jpg)
19
μ€ν¬λ‘€ λ° μ»¨νΈλ‘€ (2/3)
β’ μ£Όμ ν¨μ
λ©€λ² ν¨μ μν
SetScrollRange() μ€ν¬λ‘€ λ°μ€ μμΉκ°μ μ΅μκ°κ³Ό μ΅λκ°μ μ€μ νλ€ .
SetScrollPos() μ€ν¬λ‘€ λ°μ€μ νμ¬ μμΉλ₯Ό μ€μ νλ€ .
GetScrollPos() μ€ν¬λ‘€ λ°μ€μ νμ¬ μμΉλ₯Ό μ»λλ€ .
![Page 20: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/20.jpg)
μ€ν¬λ‘€ λ° μ»¨νΈλ‘€ (3/3)
β’ λ°μ λ©μμ§ :
β’ MessageMap μΆκ° : λ§ν¬λ‘ ν¨μ μ¬μ©β Scroll Bar λ ID μ μκ΄μμ΄ κ³΅ν΅λ λ§ν¬λ‘ν¨μμ¬μ©
β’ Event Message Handler μΆκ°
ON_WM_HSCROLL() λλ ON_WM_VSCROLL()ON_WM_HSCROLL() λλ ON_WM_VSCROLL()
void OnHScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnHScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
WM_HSCROLL/ WM_VSCROLLWM_HSCROLL/ WM_VSCROLL
![Page 21: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/21.jpg)
21
μ€ν¬λ‘€ λ° μ»¨νΈλ‘€ (4/3)
β’ WM_HSCROLL/WM_VSCROLL λ©μμ§ νΈλ€λ¬
β nSBCodeβ’ μ€ν¬λ‘€ λ° μ½λ
β nPosβ’ μ€ν¬λ‘€ λ°μ€μ μμΉβ’ μ€ν¬λ‘€ λ° μ½λκ° SB_THUMBPOSITION λλ
SB_THUMBTRACK μΈ κ²½μ°μλ§ μ¬μ©
β pScrollBarβ’ μ€ν¬λ‘€ λ° μ»¨νΈλ‘€μ κ°λ¦¬ν€λ ν¬μΈν°
void OnHScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
![Page 22: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/22.jpg)
μ½λ©μ°μ΅
β’ λ€μκ³Ό κ°μ΄ νΈμ§μ½νΈλ‘€κ³Ό , μ€ν¬λ‘€λ°λ₯Ό λΆμ΄κ³ , μ€ν¬λ‘€λ°λ₯Ό μμ§μ΄λ©΄ νΈμ§μ½νΈλ‘€μ κ·Έ κ°μ νμνλ νλ‘κ·Έλ¨μ λ§λ€μ΄ 보μ . β μ€ν¬λ‘€λ°μ λ²μ (0~100)
![Page 23: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/23.jpg)
Dialog Box
![Page 24: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/24.jpg)
24
κ°μ (1/2)
β’ λνμμβ λ€μν 컨νΈλ‘€μ ν¬ν¨νκ³ μλ μΌμ’ μ μλμ°β μ¬μ©μλ‘λΆν° μ λ ₯μ λ°κ±°λ μ 보λ₯Ό μΆλ ₯
![Page 25: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/25.jpg)
25
κ°μ (2/2)
β’ λνμμ μ’ λ₯β λͺ¨λν λνμμ (modal dialog)
β’ λνμμλ₯Ό λ«μ§ μμΌλ©΄ μμ© νλ‘κ·Έλ¨μ΄ λ μ΄μ μ§νν μ μλ€ .
β λΉ λͺ¨λν λνμμ (modeless dialog)β’ λνμμλ₯Ό λ«μ§ μλλΌλ μμ© νλ‘κ·Έλ¨μ΄ κ³μ μ§νν μ μ
λ€ .
![Page 26: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/26.jpg)
26
λνμμ ν νλ¦Ώ (1/3)
β’ λνμμ ν νλ¦Ώβ λνμμ μ체μ ν¬ν¨λ 컨νΈλ‘€μ λν λͺ¨λ μ 보λ₯Ό
κ°μ§κ³ μλ μ΄μ§ λ°μ΄ν°β 리μμ€λ‘ μ€ν νμΌμ ν¬ν¨
β’ λνμμ ν νλ¦Ώ μμ±β λΉμ£ΌμΌ C++ 리μμ€ νΈμ§κΈ°λ ν μ€νΈ νΈμ§κΈ°λ₯Ό
μ΄μ©νμ¬ λ¦¬μμ€ μ€ν¬λ¦½νΈ (*.RC) μμ±β 리μμ€ μ»΄νμΌλ¬λ‘ μ΄μ§ νμΌ (*.RES) νμΌ μμ±β λ§ν¬ κ³Όμ μμ μ€ν νμΌμ ν¬ν¨
![Page 27: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/27.jpg)
27
λνμμ ν νλ¦Ώ (2/3)
⒠리μμ€ μ€ν¬λ¦½νΈ μμ±
![Page 28: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/28.jpg)
28
λνμμ ν νλ¦Ώ (3/3)
⒠리μμ€ μ€ν¬λ¦½νΈ μμ± (cont'd)
IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 187, 98STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|
WS_SYSMENUCAPTION "Dialog"FONT 10, "System"BEGIN DEFPUSHBUTTON "OK",IDOK,130,7,50,14 PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14 EDITTEXT
IDC_EDIT1,7,7,117,14,ES_AUTOHSCROLL EDITTEXT
IDC_EDIT2,7,24,117,14,ES_AUTOHSCROLLEND
![Page 29: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/29.jpg)
29
λνμμ νΈμ§κΈ° (1/4)
⒠컨νΈλ‘€ μΆκ°μ μμ β 컨νΈλ‘€ (Controls) ν΄λ° μ΄μ©
![Page 30: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/30.jpg)
30
λνμμ νΈμ§κΈ° (2/4)
⒠컨νΈλ‘€ λ°°μΉβ λνμμ (Dialog) ν΄ λ° μ΄μ©
β Format menu μ΄μ©
![Page 31: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/31.jpg)
31
λνμμ νΈμ§κΈ° (3/4)
β’ ν μμβ Tab ν€λ₯Ό λλ μ λ ν€λ³΄λ ν¬μ»€μ€κ° μ΄λνλ μμβ [Format]->[Tab Order] λ©λ΄λ₯Ό μ΄μ©νμ¬ λ³κ²½
![Page 32: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/32.jpg)
32
λνμμ νΈμ§κΈ° (4/4)
β’ λνμμ μμ±
ν°νΈλ₯Ό λ°κΎΈλ©΄ λνμμμ λνμμμ ν¬ν¨λ 컨νΈλ‘€μ ν¬κΈ°κ° ν°νΈμ ν¬κΈ°μ λΉλ‘ν΄μ λ³κ²½λλ€ .ν°νΈλ₯Ό λ°κΎΈλ©΄ λνμμμ λνμμμ ν¬ν¨λ 컨νΈλ‘€μ ν¬κΈ°κ° ν°νΈμ ν¬κΈ°μ λΉλ‘ν΄μ λ³κ²½λλ€ .
![Page 33: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/33.jpg)
33
λͺ¨λν λνμμ (1/4)
β’ MFC ν΄λμ€ κ³μΈ΅λ
![Page 34: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/34.jpg)
34
λͺ¨λν λνμμ (1/4)
β’ λͺ¨λν λνμμ μμ± μμβ λνμμ 리μμ€ μμ±
Resource View
β‘ CDialog ( νμ ) ν΄λμ€ κ°μ²΄ μμ± β’ μ΄ λ λνμμ 리μμ€ ID λ₯Ό μμ±μμ μΈμλ‘ λ겨μ€λ€ .
[Project] [add class] menu μ΄μ©
β’ CDialog::DoModal() ν¨μ νΈμΆ
![Page 35: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/35.jpg)
35
λͺ¨λν λνμμ (2/4)
β’ CDialog ν΄λμ€ κ°μ ν¨μ
β νΈμΆ μμ : WM_INITDIALOG λ©μμ§ λ°μμβ μ©λ : 컨νΈλ‘€μ μ΄κΈ°ννκ±°λ ν€λ³΄λ ν¬μ»€μ€λ₯Ό λ³κ²½
β νΈμΆ μμ : IDOK λ²νΌμ λλ₯Ό λβ μ©λ : 컨νΈλ‘€μ κ°μ μ½κ±°λ κ°μ νλΉμ± μ¬λΆλ₯Ό κ²μ¬ν
ν λνμμ μ’ λ£
virtual BOOL CDialog::OnInitDialog ( );
virtual void CDialog::OnOK ( );
![Page 36: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/36.jpg)
36
λͺ¨λν λνμμ (3/4)
β’ CDialog ν΄λμ€ κ°μ ν¨μ (cont'd)
β νΈμΆ μμ : IDCANCEL λ²νΌμ λλ₯Ό λβ μ©λ : λνμμ μ’ λ£
virtual void CDialog::OnCancel ( );
![Page 37: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/37.jpg)
37
λͺ¨λν λνμμ (4/4)
β’ OnOK(), OnCancel() ν¨μ λ΄λΆ ꡬν
void CDialog::OnOK(){ UpdateData(TRUE); EndDialog(IDOK);}
void CDialog::OnCancel(){ EndDialog(IDCANCEL);}
![Page 38: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/38.jpg)
38
DDX/DDV (1/8)
β’ λͺ¨λν λνμμ ꡬν
class CMyDialog : public CDialog{ ... CString m_str; int m_color; ...}
![Page 39: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/39.jpg)
39
DDX/DDV (2/8)
β’ λͺ¨λν λνμμ ꡬν (cont'd)
BOOL CMyDialog::OnInitDialog() { CDialog::OnInitDialog(); SetDlgItemText(IDC_STR, m_str); SetDlgItemInt(IDC_COLOR, m_color); return TRUE;}
void CMyDialog::OnOK() { GetDlgItemText(IDC_STR, m_str); m_color = GetDlgItemInt(IDC_COLOR); CDialog::OnOK();}
![Page 40: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/40.jpg)
40
DDX/DDV (3/8)
β’ λμ μ리
IDC_STRIDC_COLOR
β β‘
λνμμ
m_str m_color
λνμμ κ°μ²΄
m_str m_color
λ·° κ°μ²΄
IDC_STRIDC_COLOR
β’ β£
λνμμ
m_str m_color
λνμμ κ°μ²΄
m_str m_color
λ·° κ°μ²΄
λνμμκ°μμ±λ λ
OK λ²νΌμλλ₯Ό λ
![Page 41: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/41.jpg)
41
DDX/DDV (4/8)
β’ DDX(Dialog Data eXchange)
IDC_STRIDC_COLOR
β β‘
λνμμ
m_str m_color
λνμμ κ°μ²΄
m_str m_color
λ·° κ°μ²΄
IDC_STRIDC_COLOR
β’ β£
λνμμ
m_str m_color
λνμμ κ°μ²΄
m_str m_color
λ·° κ°μ²΄
μλν ?
![Page 42: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/42.jpg)
42
DDX/DDV (5/8)
β’ OnInitDialog(), OnOK() ν¨μ λ΄λΆ ꡬν
BOOL CDialog::OnInitDialog(){ ... UpdateData(FALSE); ...}
void CDialog::OnOK(){ ... UpdateData(TRUE); ...}
![Page 43: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/43.jpg)
43
DDX/DDV (6/8)
β’ CWnd::UpdateData() ν¨μ λ΄λΆ ꡬν
BOOL CWnd::UpdateData(BOOL bSaveAndValidate){ ... CDataExchange dx(this, bSaveAndValidate); DoDataExchange(&dx); ...}
![Page 44: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/44.jpg)
44
DDX/DDV (7/8)
β’ DDX ꡬνβ 컨νΈλ‘€μ κ°μ μ μ₯ν λ³μ μ μΈβ DoDataExchange() ν¨μλ₯Ό μμ μ νλ‘κ·Έλ¨μ λ§κ²
μ¬μ μβ’ DDX_* 맀ν¬λ‘ μ¬μ©
void CMyDialog::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyDialog) DDX_Text(pDX, IDC_STR, m_str); DDX_Text(pDX, IDC_COLOR, m_color); //}}AFX_DATA_MAP}
![Page 45: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/45.jpg)
45
DDX/DDV (8/8)
β’ DDV(Dialog Data Validation)β λνμμμ 컨νΈλ‘€μ μ λ ₯ν λ°μ΄ν°μ νλΉμ± μ¬λΆλ₯Ό
μλμΌλ‘ κ²μ¬β’ DDV_* 맀ν¬λ‘ μ¬μ©
void CMyDialog::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyDialog) DDX_Text(pDX, IDC_STR, m_str); DDV_MaxChars(pDX, m_str, 10); DDX_Text(pDX, IDC_COLOR, m_color); DDV_MinMaxInt(pDX, m_color, 0, 255); //}}AFX_DATA_MAP}
![Page 46: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/46.jpg)
46
λΉ λͺ¨λν λνμμ
β’ μ°¨μ΄μ β CDialog::DoModal() ν¨μ λμ CDialog::Create()
ν¨μλ₯Ό μ΄μ©νμ¬ μμ±νλ€ .β λνμμλ₯Ό λ«μ λ CDialog::EndDialog() ν¨μ λμ
CWnd::DestroyWindow() ν¨μλ₯Ό νΈμΆνλ€ . β λͺ¨λν λνμμ κ°μ²΄λ λκ° μ€νμ μμ±νμ§λ§ λΉ
λͺ¨λν λνμμ κ°μ²΄λ νμ μμ±νλ€ .
![Page 47: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/47.jpg)
47
λνμμ κΈ°λ° μμ© νλ‘κ·Έλ¨ (1/2)
β’ λνμμ κΈ°λ° μμ© νλ‘κ·Έλ¨β λνμμκ° λ©μΈ μλμ° μν μ νλ μμ© νλ‘κ·Έλ¨
![Page 48: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/48.jpg)
48
λνμμ κΈ°λ° μμ© νλ‘κ·Έλ¨ (2/2)
β’ InitInstance() ν¨μ
BOOL CSimpleCalcApp::InitInstance(){ CSimpleCalcDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) {
} else if (nResponse == IDCANCEL) {
} return FALSE;}
![Page 49: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/49.jpg)
49
κ³΅ν΅ λνμμ (1/10)
β’ MFC ν΄λμ€ κ³μΈ΅λ
![Page 50: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/50.jpg)
50
κ³΅ν΅ λνμμ (2/10)
β’ MFC κ³΅ν΅ λνμμ ν΄λμ€
MFC ν΄λμ€ μ©λ API ν¨μ
CColorDialog μμ μ ν ChooseColor
CFileDialog νμΌ μ΄κΈ° λλ μ μ₯ GetOpenFileName, GetSaveFileNameCFindReplaceDialo
gμ°ΎκΈ° λλ λ°κΎΈκΈ° FindText,
ReplaceTextCFontDialog ν°νΈ μ ν ChooseFont
CPageSetupDialog ν μ΄ μ§ μ€ μ ( ν μ΄ μ§ ν¬ κΈ° , λ°© ν₯ , ν μ΄ μ§ μ¬λ°± λ± )
PageSetupDlg
CPrintDialog μΈ μ μ€ μ ( ν λ¦° ν° , μΈμ λ²μ λ± )
PrintDlg
CPrintDialogEx (>MFC 7.0)
μΈ μ μ€ μ ( ν λ¦° ν° , μΈμ λ²μ λ± )
PrintDlgEx (>μλμ° 2000)
MFC ν΄λμ€ μ©λ API ν¨μ
![Page 51: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/51.jpg)
51
κ³΅ν΅ λνμμ (3/10)
β’ CColorDialog
CColorDialog dlg;dlg.DoModal();COLORREF color = dlg.GetColor();
CColorDialog dlg(RGB(255, 0, 0), CC_FULLOPEN);dlg.DoModal();COLORREF color = dlg.GetColor();
![Page 52: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/52.jpg)
52
κ³΅ν΅ λνμμ (4/10)
β’ CFileDialog
CFileDialog dlg(TRUE);if(dlg.DoModal() == IDOK) MessageBox(dlg.GetPathName());
CFileDialog dlg(FALSE);if(dlg.DoModal() == IDOK) MessageBox(dlg.GetPathName());
![Page 53: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/53.jpg)
53
κ³΅ν΅ λνμμ (5/10)
β’ CFindReplaceDialogβ μ¬μ© λ°©λ²μ κ΅μ¬ μ°Έμ‘°
![Page 54: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/54.jpg)
54
κ³΅ν΅ λνμμ (6/10)
β’ CFontDialog
CFontDialog dlg;if(dlg.DoModal() == IDOK){ CClientDC dc(this); // νλ©΄μ μ§μ΄λ€ . CRect rect; GetClientRect(&rect); dc.SelectStockObject(WHITE_PEN); dc.SelectStockObject(WHITE_BRUSH); dc.Rectangle(&rect); // μ νλ μμμ μμλΈλ€ . COLORREF color = dlg.GetColor(); dc.SetTextColor(color);
![Page 55: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/55.jpg)
55
κ³΅ν΅ λνμμ (7/10)
β’ CFontDialog (cont'd)
// μ νλ ν°νΈλ₯Ό μμλΈλ€ . LOGFONT lf; dlg.GetCurrentFont(&lf); CFont font; font.CreateFontIndirect(&lf); dc.SelectObject(&font); // ν μ€νΈλ₯Ό μΆλ ₯νλ€ . dc.TextOut(10, 10, CString(" νκΈ & English"));}
![Page 56: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/56.jpg)
56
κ³΅ν΅ λνμμ (8/10)
β’ CPageSetupDialog
CPageSetupDialog dlg;dlg.DoModal();
![Page 57: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/57.jpg)
57
κ³΅ν΅ λνμμ (9/10)
β’ CPrintDialog
CPrintDialog dlg(TRUE);dlg.DoModal();
CPrintDialog dlg(FALSE);dlg.DoModal();
![Page 58: Visual C++ Programming Controls 3](https://reader033.fdocuments.net/reader033/viewer/2022061517/56813a07550346895da1d256/html5/thumbnails/58.jpg)
58
κ³΅ν΅ λνμμ (10/10)
β’ CPrintDialogEx
// stdafx.h νμΌμμ WINVER μμκ°μ 0x0500 μ΄μμΌλ‘ μ μνλ€ .
// ( μ ) #define WINVER 0x0500
CPrintDialogEx dlg;dlg.DoModal();