336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
stdafx.h로 공통 헤더 설정하기
파일명: stdafx.h
#ifndef __STDAFX_H #include <afxwin.h> #endif
CWinApp를 구현하기
파일명: CTestApp.h
#pragma once
class CTestApp : public CWinApp
{
public:
CTestApp();
public:
virtual BOOL InitInstance();
// 어플리케이션 수준에서 발생되는 메시지를 처리할 메시지 맵입니다.
DECLARE_MESSAGE_MAP()
};
// theApp은 MFC에서 고정된 어플리케이션 이름입니다.
// MFC로 작성된 프로그램을 실행하면 운영체제는 theApp이라는 이름의 인스턴스를 찾게 됩니다.
// 그런데 헤더파일에서는 인스턴스를 직접 선언하지 못하므로
//"어딘가 cpp파일에 이런 이름의 인스턴스가 있다"는 의미로 extern을 붙입니다.
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()
{
// 상위 클래스의 InitInstance를 실행해 초기화와 관련된 기본적인 작업들은 부모 클래스에 맡깁니다.
BOOL ret = CWinApp::InitInstance();
if(ret) // 부모클래스가 초기화 성공했다고 알려오면 비로소 자신의 작업을 진행합니다.
{
// 어플리케이션이 실행될 때 (내부적으로 WinMain이 실행될 때) 메인 윈도우는 여기서 수동으로 띄워줍니다.
// 메인 윈도우 인스턴스 만들고
CMainFrame * lpMainFrame = new CMainFrame();
// 윈도우를 만듭니다.
// 첫 번째 인자는 WNDCLASS, WNDCLASSEX 구조체로 사전에 등록된 윈도우를 기반으로 만드는 것이고,
// 두 번째 인자는 제목표시줄에 보일 텍스트를 지정합니다.
// 그 뒤로 몇 개의 인자가 더 있지만, 여기서는 기본값을 사용하기 위해 생략합니다.
lpMainFrame->Create(NULL, TEXT("Hello, World!"));
// 기본 크기로 윈도우를 띄웁니다.
// 인자에는 SW_MAXIMIZED(최대 크기로 열기), SW_MINIMIZED(최소 크기로 열기) 등이 있습니다.
lpMainFrame->ShowWindow(SW_SHOW);
// 띄운 윈도우를 다시 한 번 그립니다. 일종의 새로고침이라고 보면 됩니다.
lpMainFrame->UpdateWindow();
// 띄운 윈도우를 이 어플리케이션의 메인 윈도우로 등록합니다. 메인 윈도우가 닫히면 어플리케이션이 종료됩니다.
this->m_pMainWnd = lpMainFrame;
}
return ret; // 부모 클래스에서 반환한 값을 그대로 반환합니다.
}
CFrameWnd로 메인 윈도우 구현
파일명: CMainFrame.h
#pragma once
class CMainFrame : public CFrameWnd
{
public:
CMainFrame();
~CMainFrame();
// 어플리케이션 수준에서 발생되는 메시지를 처리할 메시지 맵입니다.
DECLARE_MESSAGE_MAP()
};
파일명: CMainFrame.cpp
#include "stdafx.h"
#include "CMainFrame.h"
// 어플리케이션 수준에서 발생되는 메시지를 처리할 메시지 맵입니다.
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
END_MESSAGE_MAP()
CMainFrame::CMainFrame()
{
}
CMainFrame::~CMainFrame()
{
}
실행 결과
CWinApp, CFrameWnd 클래스의 실제 위치
'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 |
| 2. 기본 화면에 메뉴 넣기 (0) | 2012.11.13 |