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 |