//////////////////////////////////////////
// TBEditor.h
// Copyright (c) 08/25/2002 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResTBEditor.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCSDIクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CSDI
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CSDI(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnNew();
	bool OnOpen();
	bool OnSave();
	bool OnSaveas();
	bool OnExit();
	bool OnAddbmp();
	bool OnDot();
	bool OnLine();
	bool OnBox();
	bool OnEllipse();
	bool OnBoxf();
	bool OnEllipsef();
	bool OnPaint();
	bool OnBlack();
	bool OnDblue();
	bool OnDred();
	bool OnDmazenda();
	bool OnDgreen();
	bool OnDcian();
	bool OnDyellow();
	bool OnDwhite();
	bool OnGray();
	bool OnBlue();
	bool OnRed();
	bool OnMazenda();
	bool OnGreen();
	bool OnCian();
	bool OnYellow();
	bool OnWhite();
	bool OnSelec();
	bool OnVersion();
	bool OnHowtouse();
	//ウィンドウメッセージ関連
	bool OnCreate(WPARAM, LPARAM);
	bool OnLButtonDown(WPARAM, LPARAM);
	bool OnLButtonUp(WPARAM, LPARAM);
	bool OnRButtonDown(WPARAM, LPARAM);
	bool OnMouseMove(WPARAM, LPARAM);
	bool OnNotify(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnPaint(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
};

////////////////////////////////////////////////////////////////////////
//派生させたCMyWndクラスのインスタンスとコールバック関数(マクロ）の作成
//主ウィンドウはダイアログと違い、コールバック関数は一つしか作れない
////////////////////////////////////////////////////////////////////////
CMyWnd TBEditor("TBEditor");	//ウィンドウクラスインスタンスの生成

BEGIN_SDIMSG(TBEditor)	//ダイアログと違い、コールバック関数名を特定しない
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(TBEditor, IDM_NEW, OnNew())
	ON_COMMAND(TBEditor, IDM_OPEN, OnOpen())
	ON_COMMAND(TBEditor, IDM_SAVE, OnSave())
	ON_COMMAND(TBEditor, IDM_SAVEAS, OnSaveas())
	ON_COMMAND(TBEditor, IDM_EXIT, OnExit())
	ON_COMMAND(TBEditor, IDM_ADDBMP, OnAddbmp())
	ON_COMMAND(TBEditor, IDM_DOT, OnDot())
	ON_COMMAND(TBEditor, IDM_LINE, OnLine())
	ON_COMMAND(TBEditor, IDM_BOX, OnBox())
	ON_COMMAND(TBEditor, IDM_ELLIPSE, OnEllipse())
	ON_COMMAND(TBEditor, IDM_BOXF, OnBoxf())
	ON_COMMAND(TBEditor, IDM_ELLIPSEF, OnEllipsef())
	ON_COMMAND(TBEditor, IDM_PAINT, OnPaint())
	ON_COMMAND(TBEditor, IDM_BLACK, OnBlack())
	ON_COMMAND(TBEditor, IDM_DBLUE, OnDblue())
	ON_COMMAND(TBEditor, IDM_DRED, OnDred())
	ON_COMMAND(TBEditor, IDM_DMAZENDA, OnDmazenda())
	ON_COMMAND(TBEditor, IDM_DGREEN, OnDgreen())
	ON_COMMAND(TBEditor, IDM_DCIAN, OnDcian())
	ON_COMMAND(TBEditor, IDM_DYELLOW, OnDyellow())
	ON_COMMAND(TBEditor, IDM_DWHITE, OnDwhite())
	ON_COMMAND(TBEditor, IDM_GRAY, OnGray())
	ON_COMMAND(TBEditor, IDM_BLUE, OnBlue())
	ON_COMMAND(TBEditor, IDM_RED, OnRed())
	ON_COMMAND(TBEditor, IDM_MAZENDA, OnMazenda())
	ON_COMMAND(TBEditor, IDM_GREEN, OnGreen())
	ON_COMMAND(TBEditor, IDM_CIAN, OnCian())
	ON_COMMAND(TBEditor, IDM_YELLOW, OnYellow())
	ON_COMMAND(TBEditor, IDM_WHITE, OnWhite())
	ON_COMMAND(TBEditor, IDM_SELEC, OnSelec())
	ON_COMMAND(TBEditor, IDM_VERSION, OnVersion())
	ON_COMMAND(TBEditor, IDM_HOWTOUSE, OnHowtouse())
	//ウィンドウメッセージ関連
	ON_CREATE(TBEditor)
	ON_LBUTTONDOWN(TBEditor)
	ON_LBUTTONUP(TBEditor)
	ON_RBUTTONDOWN(TBEditor)
	ON_MOUSEMOVE(TBEditor)
	ON_NOTIFY(TBEditor)
	ON_SIZE(TBEditor)
	ON_PAINT(TBEditor)
	ON_CLOSE(TBEditor)
END_WNDMSG

///////////////////
//ツールバーの作成
///////////////////
CTBAR TBar;

///////////////////////
//ステータスバーの作成
///////////////////////
CSBAR SBar;

////////////////////////
//コモンダイアログの作成
////////////////////////
CMNDLG cmndlg;

///////////////////////
//仮想ウィンドウの作成
///////////////////////
CANVAS cvs;

//☆マニュアルで付加
///////////////////////
//イメージリストの作成
///////////////////////
CIMGLIST ImgList;

//☆マニュアルで付加
///////////////////////////////
//CARGクラスオブジェクトの作成
///////////////////////////////
CARG arg;

///////////////////////////////////////////
// CDLGクラスからHELPDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class HELPDLG : public CDLG {
public:

	bool OnIdok();
	bool OnInit(WPARAM, LPARAM);
};

////////////////////////////////////////////////////////////////////////////
// HELPDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
HELPDLG helpdlg;

BEGIN_MODALDLGMSG(helpdlgProc, helpdlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(helpdlg, IDOK, OnIdok())
END_DLGMSG

///////////////////////////////////////////
// CDLGクラスからVERSIONDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class VERSIONDLG : public CDLG {
public:
	bool OnIdok();
};

////////////////////////////////////////////////////////////////////////////
// VERSIONDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
VERSIONDLG versiondlg;

BEGIN_MODALDLGMSG(versiondlgProc, versiondlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(versiondlg, IDOK, OnIdok())
END_DLGMSG
