//////////////////////////////////////////
// VirWin.h
// Copyright (c) 06/23/2002 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResVirWin.h"
//☆これはsquart()の為追加してます
#include <math.h>

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCSDIクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CSDI
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CSDI(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnExit();
	bool OnClear();
	bool OnDot(WPARAM wParam);
	bool OnLine(WPARAM wParam);
	bool OnBox(WPARAM wParam);
	bool OnCircle(WPARAM wParam);
	bool OnEllipse(WPARAM wParam);
	bool OnArc(WPARAM wParam);
	bool OnChord(WPARAM wParam);
	bool OnGetbitmap(WPARAM wParam);
	bool OnPset(WPARAM wParam);
	bool OnAnd(WPARAM wParam);
	bool OnOr(WPARAM wParam);
	bool OnXor(WPARAM wParam);
	bool OnFit(WPARAM wParam);
	bool OnOutsidebmp(WPARAM wParam);
	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 OnTransparent();
	bool OnSolid();
	bool OnHatch1();
	bool OnHatch2();
	bool OnHatch3();
	bool OnHatch4();
	bool OnHatch5();
	bool OnHatch6();
	bool OnVersion();
	//ウィンドウメッセージ関連
	bool OnCreate(WPARAM, LPARAM);
	bool OnLButtonDown(WPARAM, LPARAM);
	bool OnLButtonUp(WPARAM, LPARAM);
	bool OnRButtonDown(WPARAM, LPARAM);
	bool OnMouseMove(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnPaint(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
};

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

BEGIN_SDIMSG(VirWin)	//ダイアログと違い、コールバック関数名を特定しない
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(VirWin, IDM_EXIT, OnExit())
	ON_COMMAND(VirWin, IDM_CLEAR, OnClear())
	ON_COMMAND(VirWin, IDM_DOT, OnDot(wParam))
	ON_COMMAND(VirWin, IDM_LINE, OnLine(wParam))
	ON_COMMAND(VirWin, IDM_BOX, OnBox(wParam))
	ON_COMMAND(VirWin, IDM_CIRCLE, OnCircle(wParam))
	ON_COMMAND(VirWin, IDM_ELLIPSE, OnEllipse(wParam))
	ON_COMMAND(VirWin, IDM_ARC, OnArc(wParam))
	ON_COMMAND(VirWin, IDM_CHORD, OnChord(wParam))
	ON_COMMAND(VirWin, IDM_GETBITMAP, OnGetbitmap(wParam))
	ON_COMMAND(VirWin, IDM_PSET, OnPset(wParam))
	ON_COMMAND(VirWin, IDM_AND, OnAnd(wParam))
	ON_COMMAND(VirWin, IDM_OR, OnOr(wParam))
	ON_COMMAND(VirWin, IDM_XOR, OnXor(wParam))
	ON_COMMAND(VirWin, IDM_FIT, OnFit(wParam))
	ON_COMMAND(VirWin, IDM_OUTSIDEBMP, OnOutsidebmp(wParam))
	ON_COMMAND(VirWin, IDM_BLACK, OnBlack())
	ON_COMMAND(VirWin, IDM_DBLUE, OnDblue())
	ON_COMMAND(VirWin, IDM_DRED, OnDred())
	ON_COMMAND(VirWin, IDM_DMAZENDA, OnDmazenda())
	ON_COMMAND(VirWin, IDM_DGREEN, OnDgreen())
	ON_COMMAND(VirWin, IDM_DCIAN, OnDcian())
	ON_COMMAND(VirWin, IDM_DYELLOW, OnDyellow())
	ON_COMMAND(VirWin, IDM_DWHITE, OnDwhite())
	ON_COMMAND(VirWin, IDM_GRAY, OnGray())
	ON_COMMAND(VirWin, IDM_BLUE, OnBlue())
	ON_COMMAND(VirWin, IDM_RED, OnRed())
	ON_COMMAND(VirWin, IDM_MAZENDA, OnMazenda())
	ON_COMMAND(VirWin, IDM_GREEN, OnGreen())
	ON_COMMAND(VirWin, IDM_CIAN, OnCian())
	ON_COMMAND(VirWin, IDM_YELLOW, OnYellow())
	ON_COMMAND(VirWin, IDM_WHITE, OnWhite())
	ON_COMMAND(VirWin, IDM_SELEC, OnSelec())
	ON_COMMAND(VirWin, IDM_TRANSPARENT, OnTransparent())
	ON_COMMAND(VirWin, IDM_SOLID, OnSolid())
	ON_COMMAND(VirWin, IDM_HATCH1, OnHatch1())
	ON_COMMAND(VirWin, IDM_HATCH2, OnHatch2())
	ON_COMMAND(VirWin, IDM_HATCH3, OnHatch3())
	ON_COMMAND(VirWin, IDM_HATCH4, OnHatch4())
	ON_COMMAND(VirWin, IDM_HATCH5, OnHatch5())
	ON_COMMAND(VirWin, IDM_HATCH6, OnHatch6())
	ON_COMMAND(VirWin, IDM_VERSION, OnVersion())
	//ウィンドウメッセージ関連
	ON_CREATE(VirWin)
	ON_LBUTTONDOWN(VirWin)
	ON_LBUTTONUP(VirWin)
	ON_MOUSEMOVE(VirWin)
	ON_RBUTTONDOWN(VirWin)
	ON_SIZE(VirWin)
	ON_PAINT(VirWin)
	ON_CLOSE(VirWin)
END_WNDMSG

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

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

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

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