728x90
안녕하세요!
이번 글에서는 MFC 프로그래밍의 핵심이라고 볼 수 있는 컨트롤에 대해 설명하고, 컨트롤을 소개해 드리겠습니다.
<실습환경>
- 컴파일러 : Visual Studio2019
- 운영체제 : 윈도우10
1. 생성한 프로젝트를 열어서 [리소스뷰] → [프로젝트명.rc] → [Dialog] 순으로 탭을 열어주고, [IDD_프로젝트명_DIALOG] 를 더블클릭해 다이얼로그를 디자인 할 수 있는 화면을 열어줍니다.
* [리소스뷰] 탭이 보이지 않을 땐 [솔루션탐색기] → [프로젝트 명] → [리소스파일] → [프로젝트명.rc] 더블클릭
- 현재 띄워진 다이얼로그가 빌드 했을 때 만들어지는 다이얼로그의 디자인입니다. 이 화면에서 컨트롤을 추가하거나 편집할 수 있습니다.
2. "TODO:여기에 대화상자 컨트롤을 배치합니다" 라고 적힌 '스태틱 컨트롤' 을 클릭해 봅니다.
- 우측 하단 컨트롤 속성탭에 ID라고 적힌 부분이 있고, IDC_STATIC이라는 문구가 적혀 있습니다.
- IDC_STATIC이라는 문구는 '리소스 아이디'로서, 해당 컨트롤의 고유 ID가 됩니다.
- 이 스태틱 컨트롤은 주로 텍스트를 표시할 때 사용하며 유저가 편집할 수 없습니다.
- 지금은 쓰지 않을 예정이니 삭제해 줍니다.
3. 왼쪽에 있는 [도구상자] 탭을 선택하여 [Button], [Check Box], [Edit Control]을 각각 드래그&드롭으로 다이얼로그에 배치해 봅니다.
- 컨트롤이 배치되었고 이 컨트롤들도 마찬가지로 속성탭에 고유의 리소스ID가 생성이 된 것을 볼 수 있습니다.
- [Button]컨트롤은 우리에게 익숙한 버튼입니다. 사용자의 클릭을 감지하여 이벤트를 발생시킵니다.
- [Check Box]컨트롤은 체크 / 언체크 여부를 bool변수를 통해 true / false로 확인할 수 있습니다. 이벤트 발생 전 설정값으로 주로 사용합니다.
- [Edit Control]컨트롤은 키보드를 이용해 사용자가 직접 입력할 수 있는 컨트롤 입니다.
- 더 많은 컨트롤들이 있으나, 많이 쓰이는 세가지 컨트롤을 소개해 드렸습니다. 추후 예제를 진행하면서 하나씩 설명해 드리겠습니다.
4. 버튼을 더블클릭 해 버튼 클릭 이벤트 함수를 추가시켜 봅니다.
- 버튼을 더블클릭 하면 프로젝트가 생성될 때 같이 생성되었던 다이얼로그 클래스로 이동되며, [OnBnClicked컨트롤ID]의 이벤트함수가 하나 추가가 됩니다.
- 이 함수는 버튼을 클릭하였을 때 호출이 되며 함수 내의 코드를 실행해 줍니다.
5. 함수 내의 "//TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다 "라는 문구아래로 코드를 한줄 적어보겠습니다.
void CMFCTESTDlg::OnBnClickedButton1()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
AfxMessageBox(_T("Test!"));
}
- AfxMessageBox()함수는 매개변수로 받은 문자열을 메시지박스로 띄워주는 함수입니다.
6. [F5]를 눌러 빌드를 해봅니다.
- [도구상자]에서 추가한 컨트롤 들이 보이고, [버튼]컨트롤을 누르면 "Test!" 라는 메시지박스가 출력이 됩니다.
여기까지 간단하게 컨트롤을 추가하고, 버튼클릭 이벤트함수로 메시지박스를 출력해보는 간단한 예제를 소개해 드렸습니다.
더 많은 기능으로 컨트롤을 핸들링 하려면 조금 더 복잡한 과정이 필요하니 추후 예제에서 하나씩 알려드리도록 하겠습니다.
끝까지 읽어주셔서 감사합니다.
다음예제에서 뵙겠습니다!
728x90
'[C++] > MFC 프로그래밍' 카테고리의 다른 글
[C++] MFC 프로그래밍 : CString 클래스 (31) | 2023.06.18 |
---|---|
[C++] MFC 프로그래밍 : CRect 클래스 (30) | 2023.06.17 |
[C++] MFC 프로그래밍 : OnSize함수 (33) | 2023.06.15 |
[C++] MFC 프로그래밍 : 컨트롤 변수 (41) | 2023.06.13 |
[C++] MFC 프로그래밍 : MFC 프로젝트 생성 (42) | 2023.06.10 |