[MFC] 2장: CWnd 클래스
[ 교재 ]
열혈강의 Visual C++ 2008 MFC 윈도우 프로그래밍
저자 최호성 / 출판사 프리렉
2장: CWnd 클래스
1. MFC에 대해서
- MFC(Microsoft Foundation Class)는 윈도우 API를 C++로 둘러 싼 라이브러리
- MFC 프로그래밍 방식은 C++ 언어에 기반하므로 객체지향적 구조를 가짐
- 1992년에 MFC v1.0이 나온 이후 현재 MFC v10.0 까지 발전(Visual Studio 2010)
2. CWnd 클래스(실습)
MFC 응용 프로그램 템플릿을 선택해 프로젝트를 생성
MFC 응용 프로그램 마법사 설정
(MFC 표준 인터페이스 중 하나인 SDI(Single Document Interface) 응용 프로그램 선택)
솔루션 빌드 후 실행한 모습
CreateDemoView.h 파일을 열고 CCreateDemoView 클래스에 CWnd 클래스 객체를 멤버로 추가
CCreateDemoView 클래스의 속성을 연다
속성에서 Message 버튼 선택(번개 모양 옆)
WM_CREATE 메시지를 선택하여 OnCreate() 메시지 핸들러 함수를 등록
(OnCreate() 함수는 WM_CREATE 메시지 발생 시 자동으로 호출되는 메시지 핸들러 함수)
CreateDemoView.cpp의 CCreateDemoView 메시지 처리기에 아래 부분 입력
// CCreateDemoView 메시지 처리기
int CCreateDemoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_wndChild.Create(TEXT("STATIC"), TEXT("DEMO"),
WS_CHILD | WS_VISIBLE | WS_BORDER,
CRect(30, 30, 180, 180), this, 1234);
return 0;
}
기본 윈도우 스타일과 그 의미(주석처리)
int CTest01View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
…생략
m_wndChild.Create(TEXT("EDIT"), // 윈도우
클래스
이름
TEXT("MEMO"), // 윈도우
텍스트
WS_CHILD | // 자식 윈도우 생성
WS_VISIBLE | // 보이게 함
WS_BORDER | // Window Style
WS_CAPTION | // 제목표시줄 창(타이틀 바) 생성
WS_SYSMENU | // 시스템 메뉴 추가
WS_MINIMIZEBOX | // 최소화 버튼
WS_MAXIMIZEBOX | // 최대화 버튼
//WS_OVERLAPPED |// 겹치는 윈도우
WS_HSCROLL | // 수직
WS_VSCROLL | // 수평 윈도우에 스크롤 바 붙임,
//WS_MAXIMIZE | // 최대 창으로 연다
//WS_MINIMIZE | // 최소 창으로 연다
WS_SIZEBOX, // 윈도우 생성 크기 변경 위한 테두리 넣음
CRect(0, 0, 300, 300), // left top(0,0), right bottom(300,300)
this, // 부모
윈도우
1234); // 윈도우
리소스 ID
return 0;
}
실행 결과
'프로그래밍 실습 > MFC' 카테고리의 다른 글
[MFC] 6장: 마우스 입력 (0) | 2011.02.25 |
---|---|
[MFC] 5장: 키보드 입력 (1) | 2011.02.16 |
[MFC] 4장: MFC SDI 어플리케이션 흐름 (0) | 2011.02.16 |
[MFC] 3장: MFC 프로그램 기본 구조 (0) | 2011.02.16 |
[MFC] 1장: 윈도우 프로그래밍 모델 (0) | 2011.02.16 |