728x90
안녕하세요!
이번 글에서는 다이얼로그에 배치한 컨트롤을 변수로 만들어 핸들링 하는 방법을 소개해 드리겠습니다.
<실습환경>
컴파일러 : Visual Studio2019
운영체제 : 윈도우10
1. 버튼 컨트롤 하나를 다이얼로그에 아무렇게나 배치하여주고 버튼의 리소스ID를 IDC_BTN_TEST로 변경하여 줍니다.
- 리소스 ID는 우측 하단 [속성]탭에서 변경할 수 있습니다.
2. 버튼을 우클릭 후 [변수추가] 를 클릭해줍니다.
3. 변수 이름을 정해주고, 변수에 대한 설명을 주석란에 적어줍니다.(주석은 선택)
- 변수의 이름은 멤버변수 라는것을 알려주는m과, 리소스ID를 조합하여 지었습니다.
- 개인 또는 팀 마다 네이밍 방식은 다르니 편하게 지어주되, 최소한 개인 혹은 팀프로젝트 내에서의 일관성은 지켜주세요.
4. [마침]을 눌러서 다이얼로그 클래스의 변화를 확인 합니다.
- 클래스의 헤더파일에는 아까 설정한 CButton 변수와 주석이 생성되었습니다.
- 클래스의 코드파일에는 DoDataExchange함수 내에 DDX_Control()함수와, 매개변수로 리소스ID와 버튼 변수가 작성되어 있습니다.
- DoDataExchange함수는 리소스ID와 컨트롤객체를 연결해주는 역할을 합니다.(다이얼로그 생성 시 자동으로 호출이 됩니다.)
5. 다이얼로그 클래스의 코드파일에서 OnInitDialog 함수를 찾아 다음과 같이 코드를 입력해 줍니다.
// TODO: 여기에 추가 초기화 작업을 주가합니다.
//버튼 컨트롤의 좌표를 10, 10으로 설정
//버튼 컨트롤의 크기를 100 * 100으로 설정
m_BTN_TEST.MoveWindow(10, 10, 100, 100);
- OnInitDialog 함수는 다이얼로그 생성 직후 초기화 작업을 수행하는 함수이며, 다이얼로그가 그려지기 전에 호출이 됩니다.
- 즉, 우리의 눈에 다이얼로그가 보인다는것은 이미 OnInitDialog함수가 호출이 되어서 내부 작업을 실행한 상태라는 것입니다.
- MoveWindow함수는 컨트롤, 다이얼로그 등의 왼쪽 상단 모서리 기준 x좌표, y좌표,가로크기,세로크기 로 위치나 크기를 조정해 주는 함수입니다.
6. [F5]를 눌러 빌드 해 봅니다.
- 리소스뷰에서 버튼을 배치했던 모양과 다르게, 버튼이 x좌표10 / y좌표10으로 이동한 후 100, 100픽셀의 크기를 가지고 있는것을 확인할 수 있습니다.
이번 글에서는 컨트롤의 변수를 생성하고, 그 변수를 핸들링 하는 과정에대한 간단한 설명과, 다이얼로그 클래스의 초기화 작업을 맡고있는 OnInitDialog함수, 컨트롤과 다이얼로그를 움직여주는 MoveWindow에 대한 간단한 설명을 소개해 드렸습니다.
앞으로도 새로운 이벤트 함수와 더불어 자주 쓰이는 함수들이기 때문에 지금 당장 이해가 되지 않으셔도 큰 문제는 아니니 걱정하지 않으셔도 됩니다.
반복적으로 사용하다보면 익숙하게 사용할 수 있습니다.
끝까지 읽어주셔서 감사합니다!
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 프로그래밍 : 컨트롤 소개 (39) | 2023.06.13 |
[C++] MFC 프로그래밍 : MFC 프로젝트 생성 (42) | 2023.06.10 |