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

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCSDIクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CSDI
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(WCHAR* 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();
	//ウィンドウメッセージ関連
	CMDTABLE	//CMyWndクラスのOnCommand()関数宣言
	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 TestCanvas(L"TestCanvas");	//ウィンドウクラスインスタンスの生成

//CMyWndクラスのOnCommand()関数定義
BEGIN_CMDTABLE(CMyWnd)
	ON(IDM_EXIT, OnExit())
	ON(IDM_CLEAR, OnClear())
	ON(IDM_DOT, OnDot(wParam))
	ON(IDM_LINE, OnLine(wParam))
	ON(IDM_BOX, OnBox(wParam))
	ON(IDM_CIRCLE, OnCircle(wParam))
	ON(IDM_ELLIPSE, OnEllipse(wParam))
	ON(IDM_ARC, OnArc(wParam))
	ON(IDM_CHORD, OnChord(wParam))
	ON(IDM_GETBITMAP, OnGetbitmap(wParam))
	ON(IDM_PSET, OnPset(wParam))
	ON(IDM_AND, OnAnd(wParam))
	ON(IDM_OR, OnOr(wParam))
	ON(IDM_XOR, OnXor(wParam))
	ON(IDM_FIT, OnFit(wParam))
	ON(IDM_OUTSIDEBMP, OnOutsidebmp(wParam))
	ON(IDM_BLACK, OnBlack())
	ON(IDM_DBLUE, OnDblue())
	ON(IDM_DRED, OnDred())
	ON(IDM_DMAZENDA, OnDmazenda())
	ON(IDM_DGREEN, OnDgreen())
	ON(IDM_DCIAN, OnDcian())
	ON(IDM_DYELLOW, OnDyellow())
	ON(IDM_DWHITE, OnDwhite())
	ON(IDM_GRAY, OnGray())
	ON(IDM_BLUE, OnBlue())
	ON(IDM_RED, OnRed())
	ON(IDM_MAZENDA, OnMazenda())
	ON(IDM_GREEN, OnGreen())
	ON(IDM_CIAN, OnCian())
	ON(IDM_YELLOW, OnYellow())
	ON(IDM_WHITE, OnWhite())
	ON(IDM_SELEC, OnSelec())
	ON(IDM_TRANSPARENT, OnTransparent())
	ON(IDM_SOLID, OnSolid())
	ON(IDM_HATCH1, OnHatch1())
	ON(IDM_HATCH2, OnHatch2())
	ON(IDM_HATCH3, OnHatch3())
	ON(IDM_HATCH4, OnHatch4())
	ON(IDM_HATCH5, OnHatch5())
	ON(IDM_HATCH6, OnHatch6())
	ON(IDM_VERSION, OnVersion())
END_CMDTABLE

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

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

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

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