MFC(Microsoft Foundation Class)を使って640x480のウィンドウを作ってみる

naohiro19
記事: 256
登録日時: 14年前
住所: 愛知県

MFC(Microsoft Foundation Class)を使って640x480のウィンドウを作ってみる

投稿記事 by naohiro19 » 11年前

MFCはVisual Studio製品版でないと使えません。

CODE:

//MFCLibheader.h
#pragma once

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN
#endif

#include "targetver.h"

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS

#define _AFX_ALL_WARNINGS

#include  //MFCコア
#include  //MFC拡張

#include  //MFCオートメーション


#ifndef _AFX_NO_OLE_SUPPORT
#include            // MFC の Internet Explorer 4 コモン コントロールのサポート
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include              // MFC の Windows コモンコントロールのサポート
#endif // _AFX_NO_AFXCMN_SUPPORT

#include      // MFC におけるリボンとコントロールバーのサポート

#include 

CODE:

//targetver.h
#pragma once
#include 
  1. 「ソリューションエクスプローラー」のヘッダーファイルの項目にある「MFCLibheader.h」「targetver.h」をプロジェクトに入れておきます。
  2. 「C/C++」の「詳細設定」の「必ず使用されるインクルードファイル」を「MFCLibheader.h」に指定しておきます(リリース・デバッグ両方)
以下プログラムになります。

CODE:

//main.h
#pragma once

#include 

class CMyWindow : public CFrameWnd
{
public:
	CMyWindow();
};

class CMyApp : public CWinApp
{
public:
	virtual BOOL InitInstance();
};

CMyApp Myapp;

CODE:

//main.cpp
#include "main.h"

CMyWindow::CMyWindow()
{
	CRect rc(0, 0, 640, 480); //640×480に設定
	Create(NULL, TEXT("プログラム"), WS_OVERLAPPEDWINDOW, rc); //ウィンドウを作成
}

BOOL CMyApp::InitInstance()
{
	m_pMainWnd = new CMyWindow(); //初期化
	m_pMainWnd->ShowWindow(m_nCmdShow); //ウィンドウ表示
	m_pMainWnd->UpdateWindow(); //ウィンドウ更新
	return TRUE;
}
これでデスクトップの左上にウィンドウが表示されます。

このプログラムは猫でもわかるプログラミングMFC編にある「第1章 まず作ってみよう」のプログラムの一部を変えただけのプログラムになります。
最後に編集したユーザー naohiro19 on 2014年3月28日(金) 22:52 [ 編集 1 回目 ]

アバター
usao
記事: 1889
登録日時: 12年前

Re: MFC(Microsoft Foundation Class)を使って640x480のウィンドウを作ってみる

投稿記事 by usao » 11年前

MFCはウィザードにソース吐いてもらった状態からスタートという形でしか使ったことないですね,そういえば.
自前でCWndから派生したウィンドウ用意する場合も一からは書けなくて,
クラスの追加→…で,CWnd派生の雛形吐いてもらったり.
で,そのウィンドウをメインウィンドウにしたアプリ作る際も
とりあえずダイアログアプリの雛形吐いてもらって,ダイアログクラスのコードとリソースは即廃棄して
AppのInitInstanceで自前のウィンドウをm_pMainWndに…みたいな.