ÇнÀ¸ñÇ¥    1

ÇнÀÁÖÁ¦    1

¿¹½À³»¿ë    1

½Ç½À¹æ¹ý    1

°ú    Á¦    1

Áß¿äÇÔ¼ö    1

¸ð´Þ´ëÈ­»óÀÚ, ¸Þ´ºÀÛ¼º

ÇнÀ¸ñÇ¥

¸ð´Þ´ëÈ­»óÀÚ ±â¹Ý ¿¡Çø®ÄÉÀ̼ǰú ¸Þ´ºÀÛ¼ºÀ» °øºÎÇÑ´Ù.

ÇнÀÁÖÁ¦

¸Þ´º¿¡¼­ ¸ð´ÞÀ» ¼±ÅÃÇÏ¸é ¸ð´Þ´ëÈ­»óÀÚ¸¦ ¸¸µé°í »óÀÚ¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ °¡Á®¿É´Ï´Ù. ÀÌ´Â ´ëÈ­»óÀÚ¿¡¼­ È®ÀÎÀ» ´©¸¥ ÈÄ¿¡ ´ëÈ­»óÀÚ°¡ »ç¶óÁú ¶§ Á¸ÀçÇÏ´Â µ¥ÀÌÅ͸¦ °¡Á® ¿É´Ï´Ù. ÀÌ´Â ±¸Çö ÇϱⰡ ½±Áö¸¸ ´ëÈ­»óÀÚ Á¸ÀçÇÒ ¶§´Â µ¥ÀÌÅ͸¦ °¡Á®¿Ã ¼ö ¾ø¾î¼­ ȯ°æ ¼³Á¤µç ¼±ÅÃÀÌ ¸ðµÎ ³¡³­ ÈÄ¿¡ µ¥ÀÌÅ͸¦ °¡Á®¿Ã °æ¿ì¿¡ Ȱ¿ëÇÏ¸é µË´Ï´Ù.

ÀÌ ´Ü¿øÀÇ ³»¿ëÀº ¡°Visusal C++.NET ½ÇÀü ÇÁ·Î±×·¡¹Ö¡±,ÀÌÀç¿øÀú, °¡¸ÞÃâÆÇ»ç  p428~p442¸¦ ÂüÁ¶ Çß½À´Ï´Ù.

¿¹½À³»¿ë

½Ì±Û´ÙÅ¥¸ÕÆ®

½Ç½À¹æ¹ý

¸ñ    Â÷

1. ½Ì±Û´ÙÅ¥¸ÕÆ®·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù.

l  ÇÁ·ÎÁ§Æ®¸í : DialogTest

l  ÇÁ·ÎÁ§Æ® ŸÀÔ : MFC -> MFC ÀÀ¿ëÇÁ·Î±×·¥

l  Ãß°¡ ¿É¼Ç : ´ÜÀϹ®¼­¸¦ ¼±ÅÃÇÑ´Ù.

À¯´ÏÄÚµå ¶óÀ̺귯¸® »ç¿ëÀ» ÇØÁ¦ÇÑ´Ù.

³ª¸ÓÁö´Â ±âº»À» ¼±ÅÃÇϰųª ¡°¸¶Ä§¡±À» ¼±ÅÃÇÑ´Ù.

 

2. ´ÙÀ̾î·Î±× ¸®¼Ò½º Ãß°¡

¡°Resource View¡±¿¡¼­ ´ÙÀ̾î·Î±× ¸®¼Ò½º¸¦ Ãß°¡ÇÑ ÈÄ¿¡ ¾Æ·¡ Æ÷¸¦ ÂüÁ¶ÇÏ¿© ´ÙÀ̾î·Î±×¸¦ ±¸¼ºÇÑ´Ù.

 

ÄÁÆ®·Ñ

ID

Caption

ÄÁÆ®·Ñ º¯¼ö

ÅØ½ºÆ®

±âº»°ª

À̸§º¯°æ

 

¶óµð¿À¹öư

IDC_PARK

¹ÚÅÂÁØ

 

¶óµð¿À¹öư

IDC_HUH

Ç㸸±Ç

 

¶óµð¿À¹öư

IDC_LEE

ÀÌ»ó¿ë

 

 

 

 

 

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;

              }

}

 

 

 

óÀ½

°ú    Á¦

 

Áß¿äÇÔ¼ö