[MFC] 2장: CWnd 클래스

2011. 2. 16. 05:26
반응형

[ 교재 ]

열혈강의 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;

}

 

실행 결과

반응형
,