雛形作成

  プログラムID = プロジェクト名



プロジェクトを作成する時、全て半角英数大文字で作成して下さい。ここでは、HM010 とします。

H は販売管理の H、M はメンテナンスの M、010 は連番です。1の位を空けてあるのは枝番用です

1) 新規作成
2) Win32 Application を選択
3) 標準的な "Hello World" アプリケーション



  ソース分割 (1)



まず、「FileView」タブを選択して、プロジェクト名を持つ .cpp ファイルと、.h ファイルを確認して下さい。
.cpp の以下の部分を .h に移動させます

( .h の #include "resource.h" の下に移動 )

  
#define MAX_LOADSTRING 100

// グローバル変数:
HINSTANCE hInst;					// 現在のインスタンス
TCHAR szTitle[MAX_LOADSTRING];				// タイトル バー テキスト
TCHAR szWindowClass[MAX_LOADSTRING];			// タイトル バー テキスト

// このコード モジュールに含まれる関数の前宣言:
ATOM			MyRegisterClass( HINSTANCE hInstance );
BOOL			InitInstance( HINSTANCE, int );
LRESULT CALLBACK	WndProc( HWND, UINT, WPARAM, LPARAM );
LRESULT CALLBACK	About( HWND, UINT, WPARAM, LPARAM );
  

移動した部分を再度実装する為に、上記ソースを取り去った部分を以下のようにして下さい

  
#include "HM010.h"
  

この時点で「リビルド」を行い、エラーの無い事を確認して下さい



  ソース分割 (2)

HM010.cpp の中にある関数をソース分割する為の予備作業として、グローバル変数の前に「MyEXTERN」というキーワードを置きます

  
// グローバル変数:
MyEXTERN HINSTANCE hInst;
MyEXTERN TCHAR szTitle[MAX_LOADSTRING];
MyEXTERN TCHAR szWindowClass[MAX_LOADSTRING];
  

HM010.cpp 側は以下のようにします

  
#define MyEXTERN
#include "HM010.h"
  

この時点でも「リビルド」を行い、エラーの無い事を確認します



  ソース分割 (3)

HM010.cpp の中にある以下の関数をそれぞれ、関数名を持つ .cpp ファイルを作成して移動します

1) MyRegisterClass
2) InitInstance
3) WndProc
4) About

その際、各ソーソファイルの先頭には以下のコードを記述して下さい

  
#include "stdafx.h"

#define MyEXTERN extern
#include "HM010.h"
  

分割後、「リビルド」を行い、エラーの無い事を確認します



  ソース分割 (4)

以下の3つの新しいソースコードを追加し、それぞれの関数宣言を HM010.h に追加します。
(呼び出しは、3つともWndProc 内から呼び出します)

1) InitWndProc.cpp
2) EndWndProc.cpp
3) Dialog_01.cpp

  
#include "stdafx.h"

#define MyEXTERN extern
#include "HM010.h"

// *********************************************************
// 初期処理
// *********************************************************
void InitWndProc( HWND hWnd )
{
}
  

  
#include "stdafx.h"

#define MyEXTERN extern
#include "HM010.h"

// *********************************************************
// 終了処理
// *********************************************************
void EndWndProc( HWND hWnd )
{
}
  

  
#include "stdafx.h"

#define MyEXTERN extern
#include "HM010.h"

// *********************************************************
// ダイアログの処理
// *********************************************************
LRESULT CALLBACK Dialog_01(
HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
	switch( message ) {
		case WM_INITDIALOG:
			return TRUE;

		case WM_COMMAND:
			if( LOWORD(wParam) == IDCANCEL ) {
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
	return FALSE;
}
  

関数宣言の追加を忘れないで下さい



  WndProc の変更

この時点では、ダイアログリソースが無いので About で代用します

  
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

	switch( message ) {
		case WM_CREATE:
			InitWndProc( hWnd );

			DialogBox(
				hInst,
				(LPCTSTR)IDD_ABOUTBOX,
				hWnd,
				(DLGPROC)Dialog_01
			);
			return -1;

		case WM_DESTROY:
			EndWndProc( hWnd );

			PostQuitMessage( 0 );
			break;

		default:
			return DefWindowProc( hWnd, message, wParam, lParam );
	}
	return 0;
}
  

ダイアログリソースがある場合は、IDD_ABOUTBOX を該当ID に変更します










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ