2018년 10월 17일 수요일

[MFC] 일반윈도우생성

[사용자 윈도우 생성]

class CMyWnd: public CWnd
{
     DECLARE_MESSAGE_MAP()
     afx_msg void OnMouseMove(UINT nFlag, CPoint pt);
}
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
    ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

void CMyWnd::OnMouseMove(UINT nFlag, CPoint pt)
{
    CWnd::OnMouseMove(nFlag, pt);
}

[윈도우 클래스 등록]

CString strClass;
strClass = AfxRegisterWndClass(
CS_VREDRAW | CS_HREDRAW,
::LoadCursor(NULL, IDC_ARROW),
(HBRUSH) ::GetStockObject(BLACK_BRUSH),
::LoadIcon(NULL, IDI_APPLICATION));


[윈도우생성 - 자식윈도우 스타일]

CMyWnd* pWnd = new CMyWnd();

pWnd->Create(
0, /* strClass */
L"My Window - Child",
WS_CHILD | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_VISIBLE,
CRect(300, 0, 600, 400),
 this,
 888, // 아이디
 0);

* 자동으로 WS_CHILD 적용되어 버림

[윈도우생성 - 팝업윈도우 스타일]

pWnd->CreateEx(
0, //  WS_EX_CLIENTEDGE, WS_EX_TOPMOST,
strClass, // 사용자 등록 클래스가 반드시 존재해야 한다.
L"My Window - Popup",
 WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_BORDER | WS_THICKFRAME,
 CRect(100,100,600,400),
this, // NULL로 해도 된다. 대신 명시적으로 파괴해주어야 한다.
0 // 1이상의 값으로 하면 프로그램 죽는다.!!!
);

댓글 1개: