336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
전 편에 올렸던 소스와 달라진 부분 위주로 주석을 올립니다.
stdafx.h로 공통 헤더 설정하기
파일명: stdafx.h
#ifndef __STDAFX_H #include <afxwin.h> #include <afxext.h> #include "resource.h" #endif
CWinApp를 구현하기
파일명: CTestApp.h
#pragma once
class CTestApp : public CWinApp
{
public:
CTestApp();
public:
virtual BOOL InitInstance();
DECLARE_MESSAGE_MAP()
};
extern CTestApp theApp;
파일명: CTestApp.cpp
#include "stdafx.h"
#include "CTestApp.h"
#include "CMainFrame.h"
CTestApp theApp;
BEGIN_MESSAGE_MAP(CTestApp, CWinApp)
END_MESSAGE_MAP()
CTestApp::CTestApp()
{
}
BOOL CTestApp::InitInstance()
{
BOOL ret = CWinApp::InitInstance();
if(ret)
{
CMainFrame * lpMainFrame = new CMainFrame();
lpMainFrame->Create(NULL, TEXT("Hello, World!"));
lpMainFrame->ShowWindow(SW_SHOW);
lpMainFrame->UpdateWindow();
this->m_pMainWnd = lpMainFrame;
}
return ret;
}
CFrameWnd로 메인 윈도우 구현
파일명: CMainFrame.h
#pragma once
class CMainFrame : public CFrameWnd
{
private:
// 윈도우에 넣을 메뉴를 다루는 인스턴스입니다.
CMenu m_menu;
public:
CMainFrame();
~CMainFrame();
protected:
// 창이 생성될 때 이벤트 핸들러를 재정의합니다.
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
};
파일명: CMainFrame.cpp
#include "stdafx.h"
#include "CMainFrame.h"
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()
CMainFrame::CMainFrame()
{
CFrameWnd::CFrameWnd();
}
CMainFrame::~CMainFrame()
{
}
// 창이 생성될 때 처리할 내용이 담긴 이벤트 핸들러를 구현합니다.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// 작업에 앞서 부모 클래스의 OnCreate를 먼저 호출합니다. 그 반환값을 이 메서드의 반환값으로 삼습니다.
int ret = CFrameWnd::OnCreate(lpCreateStruct);
// assert를 위한 임시 변수입니다.
BOOL assert;
if(ret != -1)
{
// 리소스 상 메뉴의 이름은 IDR_MENU1입니다. 이 이름의 리소스를 LoadMenu 메서드를 통해 불러옵니다.
// LoadMenu 메서드는 리소스로부터 지정한 메뉴를 불러오는데 성공하면 TRUE, 그렇지 않다면 FALSE를 반환합니다.
// 뒤이어 실행되는 ASSERT는 메서드의 반환 값이 TRUE인지 FALSE인지를 판단하여
// FALSE이면 프로그램을 중지하여 디버거가 이 위치를 추적해올 수 있도록 합니다.
assert = this->m_menu.LoadMenu(MAKEINTRESOURCE(IDR_MENU1)); ASSERT(assert);
// 불러온 메뉴를 이 창의 메뉴로 설정합니다.
this->SetMenu(&this->m_menu);
}
return ret;
}
실행 결과
메뉴 리소스 IDR_MENU1은 아래와 같은 모양으로 만들었습니다.
SetMenu를 통해 리소스 메뉴가 창 메뉴로 사용되었습니다.
'Application Programming Interface > Microsoft Foundation Class' 카테고리의 다른 글
| MFC 기본 컨트롤 - ListBox의 사용법 (0) | 2018.01.25 |
|---|---|
| MFC 기본 컨트롤 - CComboBox 사용법 (0) | 2017.10.09 |
| 마법사 없이 SDI Frame-View-Document를 사용하는 최소 구조 (0) | 2013.05.03 |
| 마법사 없이 코딩만으로 리본 UI 구현하기 (1) (0) | 2013.03.13 |
| 1. MFC 시작하기 (0) | 2012.11.13 |