//////////////////////////////////////////
// Calender.h
// Copyright (c) 04/24/2020 by BCCSkelton
// Ref: http://www.kumei.ne.jp/c_lang/sdk2/sdk_181.htm
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResCalender.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCSDIクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CSDI
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CSDI(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnExplanation();
	bool OnVersion();
	bool OnExit();
	bool OnSpecym();
	bool OnWeekno();
	bool OnNotoday();
	bool OnNoWeekno();
	bool OnToday();
	//ウィンドウメッセージ関連
	bool OnCreate(WPARAM, LPARAM);
	bool OnNotify(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	//ユーザー定義関数
	bool SetMCC(HWND);
	bool SBarInfo(bool);
	bool ModifyMenu(HMENU, int, int, char*);
};

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

BEGIN_SDIMSG(Calender)	//ダイアログと違い、コールバック関数名を特定しない
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(Calender, IDM_EXPLANATION, OnExplanation())
	ON_COMMAND(Calender, IDM_VERSION, OnVersion())
	ON_COMMAND(Calender, IDM_EXIT, OnExit())
	ON_COMMAND(Calender, IDM_SPECYM, OnSpecym())
	ON_COMMAND(Calender, IDM_WEEKNO, OnWeekno())
	ON_COMMAND(Calender, IDM_NOTODAY, OnNotoday())
	ON_COMMAND(Calender, IDM_NOWEEKNO, OnNoWeekno())
	ON_COMMAND(Calender, IDM_TODAY, OnToday())
	//ウィンドウメッセージ関連
	ON_CREATE(Calender)
	ON_NOTIFY(Calender)
	ON_SIZE(Calender)
	ON_CLOSE(Calender)
	ON_DESTROY(Calender)
END_WNDMSG

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

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

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

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

BEGIN_MODALDLGMSG(specdlgProc, specdlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(specdlg, IDC_BUTTON, OnButton())
END_DLGMSG

////////////////////
// ユーザー外部変数
////////////////////
static HWND hMC;		//MCコントロールのハンドル
static SYSTEMTIME st;	//MCコントロールから取得する為の変数
static HMENU hMenu;		//メニューハンドルの取得用変数
