728x90
300x250

[MFC] 윈도우 프로그래밍 기초 - 체크 박스 + 버튼 응용 예제

 

오늘 만들어볼 예제는 체크 박스를 선택하면 내용이 출력되는 것을 만들도록 하겠습니다.

VB6 수준으로 정말 쉽습니다.

 

실습을 하기에 앞서 이론적인 지식을 잠시 넣도록 하겠습니다.

 


1. 구현에 관한 기본 지식

afxwin.h

-> void SetCheck(int nCheck)

-> int GetCheck( ) const

 

SetCheck( )는 말 그대로 체크박스의 값을 변경하는 일을 수행하며

GetCheck( )는 아래의 인자값으로서 체크박스의 현재 상태를 출력한다.

상태값은 아래와 같이 두 가지로 구분된다.

 

 인자 값

 내용

 BST_UNCHECKED

 체크박스 컨트롤이 체크 안된 상태를 의미

 BST_CHECKED

 체크박스 컨트롤이 체크된 상태를 의미 

 


2. 결과 - 완성 프로그램

 

 


3. 실습

 

 

 

위처럼 디자인을 합니다.

 

 컨트롤 ID

 변수 이름

 변수 형식

 범주(T)

 IDC_CHECK1

 m_CheckBox1

 CButton

 Control

 IDC_CHECK2 

 m_CheckBox2

 CButton 

 Control 

 IDC_CHECK3

 m_CheckBox3

CButton

 Control

 IDC_BUTTON

 

 

 

 

IDC_BUTTON은 이벤트 처리기로 OnBnClickedButton1()을 생성해줍니다.

(사용자프로젝트명)Dlg.h에 가면 아래와 같이 잘빠지게 생성된 것을 확인할 수 있습니다.

 

 

(사용자프로젝트명)Dlg.cpp 코드 부분

 

맨 위의 #ifdef _ #endif 아래에 이와 같이 코드를 짜봅니다.

- 0번째 줄부터 보면 찾기 쉽습니다.

 

 

 

BOOL CMFCControlDlg::OnInitDialog()  - 약 74줄 근방에 위치함

{

         (생략)

         
          // TODO: 여기에 추가 초기화 작업을 추가합니다. - 약 103줄 근방에 위치함.
           SetDlgItemText(IDC_BUTTON1, _T("확인"));
           SetDlgItemText(IDC_CHECK1, pszName[0]);
           SetDlgItemText(IDC_CHECK2, pszName[1]);
           SetDlgItemText(IDC_CHECK3, pszName[2]);

 

           m_CheckBox1.SetCheck(BST_CHECKED);
           m_CheckBox2.SetCheck(BST_UNCHECKED);
           m_CheckBox3.SetCheck(BST_UNCHECKED);


}

 

 

void CMFCControlDlg::OnBnClickedButton1() // 약 166줄 위치
{
        // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

         CString szMsg;

        if (m_CheckBox1.GetCheck() == BST_CHECKED)
        {
               GetDlgItemText(IDC_CHECK1, szMsg);
               szMsg.Append(_T("님"));
        }

        if (m_CheckBox2.GetCheck() == BST_CHECKED)
        {
               GetDlgItemText(IDC_CHECK2, szMsg);
               szMsg.Append(_T("님"));
         }

         if (m_CheckBox3.GetCheck() == BST_CHECKED)
         {
               GetDlgItemText(IDC_CHECK3, szMsg);
               szMsg.Append(_T("님"));
         }

         szMsg.Append(_T("\n안녕하세요."));

         AfxMessageBox(szMsg);

}

 

이렇게 짜보면 예제를 실행할 수 있습니다.

 

반응형
728x90
300x250

[MFC] 윈도우 프로그래밍 기초 - 버튼 클릭 사용하기

 

"나는 착하다"라는 버튼 이벤트를 만드는 예제를 실습해보겠습니다.

 


1. 결과 - 완성 프로그램

 

 

 


2. 실습

 

 

이벤트 처리기 추가(A)를 클릭합니다.

 

 

 

추가 및 편집(A)를 클릭합니다.

 

 

이렇게 코드를 입력하면 결과물을 만들어낼 수 있습니다.

반응형
728x90
300x250

[MFC] 윈도우 프로그래밍 기초 - Trace (디버그 창 출력)

 

이번에 소개할 내용은 "Visual Studio 2013 / C++(MFC)"에서 "Trace(디버그)" 창 출력에 대해서 소개합니다.

 


1. Trace 출력하기

 

 

디버그 출력 창에서 태스트 해보고 싶으면 아래와 같은 함수를 사용하면 됩니다.

Trace("내용입력", P1, P2, ..., Pn)

 

내용은 C언어의 Printf 처럼 사용하면 됩니다.

 

반응형
728x90
300x250

[MFC] 윈도우 프로그래밍 기초 - 리소스 문자열 제어

 

이번에는 윈도우 프로그래밍 기초 "리소스 문자열 제어"에 대해서 소개하고자 합니다.

 


1. 리소스 문자열 제어

 

 

동그라미 친 영역의 Text('TODO:여기에 대화 상자 컨트롤을 배치합니다')라는 글귀를 바꾸는 함수는 아래와 같이 사용할 수 있습니다.

 

* 문자열 변경

 

SetDlgItemText( ID명, 변경할 택스트입니다. );

 

* 문자열 가져오기

 

GetDlgItemText( ID명, CString형 );

 

GetDlgItemText( ID명, TCHAR형, 배열사이즈(또는 사이즈) );

 

 

반응형

+ Recent posts