본문 바로가기

프로그래밍/MFC

[MFC] CWnd, OnCreate, CWnd::Create 기본 명령_1

솔루션의 헤더의 클래스 내부의 재정의 부분에 다음을 입력.

CWnd m_wndChild;

CWnd는 창 클래스의 기본 기능을 사용하기 위한 클래스.


클래스 뷰의 '솔루션이름View'의 속성으로 들어가서 메시지 버튼을 누르면 WM으로 시작하는 메시지들이 나타난다

이 중 WM_CREATE를 OnCreate 상태로 만들면 새 함수 OnCreate가 생성된다.

(View 윈도우가 만들어 질 때 호출되는 함수.)


int CMFCApplication_1View::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; m_wndChild.Create(_T("STATIC"), _T("DEMO"), 

WS_CHILD | WS_VISIBLE | WS_BORDER , CRect(30, 30, 180, 180), this, 1234); return 0; }


파란 부분은 직접 입력한 부분이고 자식윈도우를 부모윈도우에 생성하는 명령이다.

정의는 다음과 같다.


virtual BOOL Create( LPCTSTR lpszClassName,    //STATIC, BUTTON, EDIT 등.. 윈도우의 형식 지정 LPCTSTR lpszWindowName,   //창에 문자열 표시 DWORD dwStyle,            //창의 스타일 Const RECT& rect,         //창의 위치 CWnd* pParentWnd,         //부모창의 위치 포인터 UINT nID,                 //창의 리소스 아이디 CCreateContext* pContext = NULL    //생성 컨텍스트 );