|
¸ð´Þ´ëÈ»óÀÚ, ¸Þ´ºÀÛ¼º |
||||||||||||||||||||||||||||
ÇнÀ¸ñÇ¥ |
|||||||||||||||||||||||||||||
¸ð´Þ´ëÈ»óÀÚ ±â¹Ý ¿¡Çø®ÄÉÀ̼ǰú ¸Þ´ºÀÛ¼ºÀ» °øºÎÇÑ´Ù. |
|||||||||||||||||||||||||||||
ÇнÀÁÖÁ¦ |
|||||||||||||||||||||||||||||
¸Þ´º¿¡¼ ¸ð´ÞÀ» ¼±ÅÃÇÏ¸é ¸ð´Þ´ëÈ»óÀÚ¸¦ ¸¸µé°í »óÀÚ¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ °¡Á®¿É´Ï´Ù. ÀÌ´Â ´ëÈ»óÀÚ¿¡¼ È®ÀÎÀ» ´©¸¥ ÈÄ¿¡ ´ëÈ»óÀÚ°¡ »ç¶óÁú ¶§ Á¸ÀçÇÏ´Â µ¥ÀÌÅ͸¦ °¡Á® ¿É´Ï´Ù. ÀÌ´Â ±¸Çö ÇϱⰡ ½±Áö¸¸ ´ëÈ»óÀÚ Á¸ÀçÇÒ ¶§´Â µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¼ö ¾ø¾î¼ ȯ°æ ¼³Á¤µç ¼±ÅÃÀÌ ¸ðµÎ ³¡³ ÈÄ¿¡ µ¥ÀÌÅ͸¦ °¡Á®¿Ã °æ¿ì¿¡ Ȱ¿ëÇÏ¸é µË´Ï´Ù. ÀÌ ´Ü¿øÀÇ ³»¿ëÀº ¡°Visusal C++.NET ½ÇÀü ÇÁ·Î±×·¡¹Ö¡±,ÀÌÀç¿øÀú, °¡¸ÞÃâÆÇ»ç p428~p442¸¦ ÂüÁ¶ Çß½À´Ï´Ù. |
|||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
¿¹½À³»¿ë |
|||||||||||||||||||||||||||||
½Ì±Û´ÙÅ¥¸ÕÆ® |
|||||||||||||||||||||||||||||
½Ç½À¹æ¹ý |
|||||||||||||||||||||||||||||
¸ñ Â÷ |
|||||||||||||||||||||||||||||
1. ½Ì±Û´ÙÅ¥¸ÕÆ®·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù.l ÇÁ·ÎÁ§Æ®¸í : DialogTest l ÇÁ·ÎÁ§Æ® ŸÀÔ : MFC -> MFC ÀÀ¿ëÇÁ·Î±×·¥ l Ãß°¡ ¿É¼Ç : ´ÜÀϹ®¼¸¦ ¼±ÅÃÇÑ´Ù. À¯´ÏÄÚµå ¶óÀ̺귯¸® »ç¿ëÀ» ÇØÁ¦ÇÑ´Ù. ³ª¸ÓÁö´Â ±âº»À» ¼±ÅÃÇϰųª ¡°¸¶Ä§¡±À» ¼±ÅÃÇÑ´Ù. 2. ´ÙÀ̾î·Î±× ¸®¼Ò½º Ãß°¡ ¡°Resource View¡±¿¡¼ ´ÙÀ̾î·Î±× ¸®¼Ò½º¸¦ Ãß°¡ÇÑ ÈÄ¿¡ ¾Æ·¡ Æ÷¸¦ ÂüÁ¶ÇÏ¿© ´ÙÀ̾î·Î±×¸¦ ±¸¼ºÇÑ´Ù.
3. ´ÙÀ̾î·Î±× Ŭ·¡½º Ãß°¡ À§¿¡¼ ´ÙÀ̾î·Î±×¸¦ °ü¸®Çϱâ À§ÇØ Å¬·¡½º¸¦ ¸¸µç´Ù. ¸¶¿ì½º·Î ´ÙÀ̾î·Î±× ¹Ú½º¸¦ ´õºíÅ©¸¯ Çϰųª ¸¶¿ì½º ¿À¸¥ÂÊ۸¦ ´·¯¼ ¡°Å¬·¡½º Ãß°¡¡±¸¦ ¼±ÅÃÇÑ´Ù. Ŭ·¡½º À̸§Àº ¡°CNameDlg¡±·Î ÀÔ·ÂÇÑ´Ù. ¼±ÅÃµÈ »ç¶÷À» ÀúÀåÇϱâ À§ÇØ Á¤¼öÇü º¯¼ö ¡°m_Name¡±À» ¼±¾ðÇÑ´Ù. |
|||||||||||||||||||||||||||||
|
#pragma once // CNameDlg ´ëÈ»óÀÚÀÔ´Ï´Ù. class CNameDlg : public
CDialog { DECLARE_DYNAMIC(CNameDlg) public: CNameDlg(CWnd*
pParent = NULL); // Ç¥ÁØ»ý¼ºÀÚÀÔ´Ï´Ù. virtual ~CNameDlg(); // ´ëÈ»óÀÚµ¥ÀÌÅÍÀÔ´Ï´Ù. enum { IDD = IDD_DIALOG1 }; protected: virtual void
DoDataExchange(CDataExchange* pDX); //
DDX/DDV Áö¿øÀÔ´Ï´Ù. DECLARE_MESSAGE_MAP() public: int m_Name; };
|
|
|||||||||||||||||||||||||||
¶ÇÇÑ À§ÀÇ º¯¼ö¸¦ ¡°CDialogTestDoc¡± Ŭ·¡½º¿¡µµ ÀúÀåÇÏ¿© ´Ù¸¥ Ŭ·¡½º¿¡¼µµ ÂüÁ¶ ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. |
|||||||||||||||||||||||||||||
|
// DialogTestDoc.h : CDialogTestDoc Ŭ·¡½ºÀÇÀÎÅÍÆäÀ̽º // #pragma once class CDialogTestDoc : public
CDocument { protected: // serialization¿¡¼¸¸¸¸µé¾îÁý´Ï´Ù. CDialogTestDoc(); DECLARE_DYNCREATE(CDialogTestDoc) // Ư¼ºÀÔ´Ï´Ù. public: // ÀÛ¾÷ÀÔ´Ï´Ù. public: // ÀçÁ¤ÀÇÀÔ´Ï´Ù. public: virtual BOOL OnNewDocument(); virtual void
Serialize(CArchive& ar); // ±¸ÇöÀÔ´Ï´Ù. public: virtual ~CDialogTestDoc(); #ifdef _DEBUG virtual void
AssertValid() const; virtual void
Dump(CDumpContext& dc) const; #endif protected: // »ý¼ºµÈ¸Þ½ÃÁö¸ÊÇÔ¼ö protected: DECLARE_MESSAGE_MAP() public: int m_Name; };
|
|
|||||||||||||||||||||||||||
4. OnInitDialog() ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù.
´ÙÀ̾î·Î±× ¹Ú½º°¡ ³ªÅ¸³¯ ¶§ ¼±ÅÃµÈ »ç¶÷À» ¶óµð¿À ¹öư¿¡ Ç¥½ÃÇϱâ À§ÇØ ¡°OnInitDialog()¡± ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ÇÑ ÈÄ¿¡ ÇÁ·Î±×·¥À» Ãß°¡ ÇÑ´Ù. |
|||||||||||||||||||||||||||||
|
BOOL CNameDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡Ãß°¡ÃʱâÈÀÛ¾÷À»Ãß°¡ÇÕ´Ï´Ù. CButton* pBtn; switch
(m_Name) { case
0: pBtn
= (CButton*)GetDlgItem(IDC_PARK); break; case
1: pBtn
= (CButton*)GetDlgItem(IDC_HUH); break; case
2: pBtn
= (CButton*)GetDlgItem(IDC_LEE); break; } pBtn->SetCheck(TRUE); return TRUE;
// return TRUE unless you set the focus to a
control // ¿¹¿Ü: OCX ¼Ó¼ºÆäÀÌÁö´ÂFALSE¸¦¹ÝÈ¯ÇØ¾ßÇÕ´Ï´Ù. } |
|
|||||||||||||||||||||||||||
5. ¶óµð¿À¹öư Çڵ鷯 ÀÛ¼º
¶óµð¿À ¹öưÀ» ¼±ÅÃÇßÀ» ¶§ m_NameÀÇ °ªÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï °¢ ¶óµð¿À ¹öưÀ» ´õºí Ŭ¸¯ÇÏ¿© ´ÙÀ½°ú °°Àº Çڵ鷯¸¦ ¸¸µç´Ù. |
|||||||||||||||||||||||||||||
|
void CNameDlg::OnBnClickedPark() { // TODO: ¿©±â¿¡ÄÁÆ®·Ñ¾Ë¸²Ã³¸®±âÄڵ带Ãß°¡ÇÕ´Ï´Ù. m_Name = 0; } void CNameDlg::OnBnClickedHuh() { // TODO: ¿©±â¿¡ÄÁÆ®·Ñ¾Ë¸²Ã³¸®±âÄڵ带Ãß°¡ÇÕ´Ï´Ù. m_Name = 1; } void CNameDlg::OnBnClickedLee() { // TODO: ¿©±â¿¡ÄÁÆ®·Ñ¾Ë¸²Ã³¸®±âÄڵ带Ãß°¡ÇÕ´Ï´Ù. m_Name = 2; } |
|
|||||||||||||||||||||||||||
6. ¸Þ´ºÇ׸ñ ¹× ¸í·É Çڵ鷯 Ãß°¡
¡°¸®¼Ò½ººä¡±¿¡¼ ¸Þ´º ¡°IDR_MAINFRAME¡±À» ¼±ÅÃÇÏ°í ¾Æ·¡ ±×¸²°ú °°ÀÌ ¸Þ´º¸¦ ¸¸µé°í ID¸¦ ¼öÁ¤ÇÑ´Ù. |
|||||||||||||||||||||||||||||
|
¸Þ´ºÇ׸ñ
|
ID
|
ºñ°í
|
|
|||||||||||||||||||||||||
|
À̸§
|
|
¸Þ´º¹Ù
|
|
|||||||||||||||||||||||||
|
À̸§¼±ÅÃ(Modal)
|
ID_NAME_MODAL
|
|
|
|||||||||||||||||||||||||
¡°Å¬·¡½ººä¡±¿¡¼ ¡°CDialogTestView¡± Ŭ·¡½º¸¦ ¼±ÅÃÇÏ°í ¡°¼Ó¼º¡± À©µµ¿ì¿¡¼ ¡°À̺¥Æ®¡±
¹öưÀ» ´©¸£¸é ³ªÅ¸³ª´Â
ID â¿¡¼ ¡°ID_NAME_MODAL¡±À» ¼±ÅÃÇÏ°í ¸í·ÉÇڵ鷯¸¦ Ãß°¡ÇÑ´Ù.
|
|
||||||||||||||||||||||||||||
¼±ÅÃµÈ »ç¶÷À»
Document Ŭ·¡½ºÀÇ m_Name ¸â¹ö¿¡ ÀÖ´Â °´Ã¼¸¦ dlg °´Ã¼ÀÇ m_Name¿¡ Àü´ÞÇϰí DoMoal() ¸â¹ö ÇÔ¼öÀÇ ¡°È®ÀΡ±À» ´©¸£¸é ¼±ÅÃµÈ »ç¶÷ÀÇ
m_NameÀ» Document Ŭ·¡½ºÀÇ m_Name ¸â¹ö¿¡ Àü´ÞÇÑ´Ù.
|
|||||||||||||||||||||||||||||
|
// DialogTestView.cpp :
CDialogTestView Ŭ·¡½ºÀDZ¸Çö // #include "stdafx.h" #include "DialogTest.h" #include "DialogTestDoc.h" #include "DialogTestView.h" #include
"NameDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // ============ Áß°£ »ý·«====================== void CDialogTestView::OnNameModal() { // TODO: ¿©±â¿¡¸í·É󸮱âÄڵ带Ãß°¡ÇÕ´Ï´Ù. CNameDlg dlg; dlg.m_Name
= GetDocument()->m_Name; if(dlg.DoModal()
== IDOK) { GetDocument()->m_Name
= dlg.m_Name; } } |
|
|||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
°ú Á¦ |
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||