//////////////////////////////////////////
// RTEditorProc.h
// Copyright (c) 06/23/2002 by BCCSkelton
//////////////////////////////////////////
//☆元々は空であった関数に、以下のように処理を記述します。

/////////////////////////////////
//主ウィンドウCMyWndの関数の定義
//ウィンドウメッセージ関数
/////////////////////////////////
bool CMyWnd::OnMDIFrameCreate(WPARAM wParam, LPARAM lParam) {

	//コモンコントロールの初期化
	InitCommonControls();

	//ツールバー登録−Init(hWnd, hIinstance, ID, Style)−ツールチップを付ける
	TBar.Init(m_hWnd, m_hInstance, TOOLBAR, WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS);
	//ツールバーボタン用ビットマップ追加
	TBar.AddBmp();
	//ツールバーボタン追加
	//☆ボタン数を増やすときはマニュアルになります。
	TBBUTTON tbb[23];
	ZeroMemory(tbb, sizeof(tbb));
	tbb[0].iBitmap = STD_FILENEW;
	tbb[0].fsState = TBSTATE_ENABLED;
	tbb[0].fsStyle = TBSTYLE_BUTTON;
	tbb[0].idCommand = IDM_NEW;
	tbb[1].iBitmap = STD_FILEOPEN;
	tbb[1].fsState = TBSTATE_ENABLED;
	tbb[1].fsStyle = TBSTYLE_BUTTON;
	tbb[1].idCommand = IDM_OPEN;
	tbb[2].iBitmap = STD_FILESAVE;
	tbb[2].fsStyle = TBSTYLE_BUTTON;
	tbb[2].idCommand = IDM_SAVE;
	tbb[3].iBitmap = STD_PROPERTIES;
	tbb[3].fsState = TBSTATE_ENABLED;
	tbb[3].fsStyle = TBSTYLE_BUTTON;
	tbb[3].idCommand = IDM_SETPRINT;
	tbb[4].iBitmap = STD_PRINT;
	tbb[4].fsStyle = TBSTYLE_BUTTON;
	tbb[4].idCommand = IDM_PRINT;
	tbb[5].fsStyle = TBSTYLE_SEP;	//セパレーター
	tbb[6].iBitmap = STD_UNDO;
	tbb[6].fsStyle = TBSTYLE_BUTTON;
	tbb[6].idCommand = IDM_UNDO;
	tbb[7].iBitmap = STD_CUT;
	tbb[7].fsStyle = TBSTYLE_BUTTON;
	tbb[7].idCommand = IDM_CUT;
	tbb[8].iBitmap = STD_COPY;
	tbb[8].fsStyle = TBSTYLE_BUTTON;
	tbb[8].idCommand = IDM_COPY;
	tbb[9].iBitmap = STD_PASTE;
	tbb[9].fsStyle = TBSTYLE_BUTTON;
	tbb[9].idCommand = IDM_PASTE;
	tbb[10].iBitmap = STD_FIND;
	tbb[10].fsStyle = TBSTYLE_BUTTON;
	tbb[10].idCommand = IDM_FIND;
	tbb[11].iBitmap = STD_REPLACE;
	tbb[11].fsStyle = TBSTYLE_BUTTON;
	tbb[11].idCommand = IDM_REPLACE;
	tbb[12].fsStyle = TBSTYLE_SEP; 	//セパレーター

	//☆カスタムビットマップは以下のように追加します。
	//カスタムビットマップの追加
	TBar.AddBmp(m_hInstance, "IDB_CUSTOM", 8);

	tbb[13].iBitmap = TBar.m_id;
	tbb[13].fsStyle = TBSTYLE_BUTTON;
	tbb[13].idCommand = IDM_LEFT;
	tbb[14].iBitmap = TBar.m_id + 1;
	tbb[14].fsStyle = TBSTYLE_BUTTON;
	tbb[14].idCommand = IDM_CENTER;
	tbb[15].iBitmap = TBar.m_id + 2;
	tbb[15].fsStyle = TBSTYLE_BUTTON;
	tbb[15].idCommand = IDM_RIGHT;
	tbb[16].fsStyle = TBSTYLE_SEP;	//セパレーター
	tbb[17].iBitmap = TBar.m_id + 3;
	tbb[17].fsStyle = TBSTYLE_BUTTON;
	tbb[17].idCommand = IDM_FONT;
	tbb[18].fsStyle = TBSTYLE_SEP;	//セパレーター
	tbb[19].iBitmap = TBar.m_id + 4;
	tbb[19].fsStyle = TBSTYLE_BUTTON;
	tbb[19].idCommand = IDM_LINDENT;
	tbb[20].iBitmap = TBar.m_id + 5;
	tbb[20].fsStyle = TBSTYLE_BUTTON;
	tbb[20].idCommand = IDM_LOUTDENT;
	tbb[21].iBitmap = TBar.m_id + 6;
	tbb[21].fsStyle = TBSTYLE_BUTTON;
	tbb[21].idCommand = IDM_RINDENT;
	tbb[22].iBitmap = TBar.m_id + 7;
	tbb[22].fsStyle = TBSTYLE_BUTTON;
	tbb[22].idCommand = IDM_ROUTDENT;
	TBar.AddButtons(23, tbb);

	//ステータスバー登録−Init(hWnd, hIinstance, ID, (以下省略可）Style)
	SBar.Init(m_hWnd, m_hInstance, STATUSBAR);
	//ステータスバー区画設定
	int sec[4] = {120, 210, 330, -1};
	SBar.SetSection(4, sec);
	//ステータスバー文字列設定
	SBar.SetText(0, "RTEditor Version 1.1");

	//MDIClientを作成−CreateMDIClient関数（引数は子ウィンドウ情報を表示するサブメニュー）
	//☆4番目のサブメニューにMDI子ウィンドウ情報を表示します
	CreateMDIClient(3);

	//MDIフレームウィンドウのドラッグアンドドロップを許可する
	DragAcceptFiles(m_hWnd, TRUE);

	//メニューハンドルの取得
	g_hPopup = GetSubMenu(GetMenu(m_hWnd), 1);

	return TRUE;
}

bool CMyWnd::OnMDIChildCreate(WPARAM wParam, LPARAM lParam) {

	//リッチエディットコントロールを作成する
	if(!Edit.Create("", WS_CHILD | WS_VSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL |
				WS_HSCROLL | ES_NOHIDESEL | ES_MULTILINE | ES_WANTRETURN,
				WS_EX_CLIENTEDGE, FocusedChild(), IDC_CHILD_CONTROL)) {
		MessageBox(m_hWnd, "RichEdit Controlが作れません", "エラー", MB_OK);
		return FALSE;
	}
	else {
		//2003年の新CREDTクラスでは別途設定する
		Edit.SetWYSWYG();
		//☆リッチエディットコントロールからの特定通知（例：ENM_MOUSEEVENTS）を開始
		Edit.FilterMsg(ENM_MOUSEEVENTS | ENM_KEYEVENTS | ENM_SELCHANGE);
	}
	return TRUE;
}

bool CMyWnd::OnMDIActivate(WPARAM wParam, LPARAM lParam) {

	bool EnableFlag;
	if(FocusedChild() == (HWND)lParam){	//MDIChildウィンドウがアクティブなら
		EnableFlag = TRUE;				//使用不可になっていたメニュー、ツールバーボタンを使用可にする
		char FileName[MAX_PATH];
		Edit.m_hWnd = GetDlgItem(FocusedChild(), IDC_CHILD_CONTROL);
		//ファイルサイズ（"xxxxxxxxxxxバイト" + NULL）のステータスバー表示
		wsprintf(FileName, "%dバイト", Edit.GetSize());
		SBar.SetText(1, FileName);
		//キャレット位置（"(6桁)+行：(6桁)+桁" + NULL）のステータスバー表示
		wsprintf(FileName, "%d行：%d桁", Edit.GetPos()->y + 1, Edit.GetPos()->x + 1);
		SBar.SetText(2, FileName);
		//タイトルバーのファイル名をステータスバーへ表示
		SendMessage(m_hFocusedChild, WM_GETTEXT, MAX_PATH, (LPARAM)FileName);
		SBar.SetText(3, FileName);
	}
	else {
		EnableFlag = FALSE;				//そうでなければ使用不可にする
		SBar.SetText(3, "");			//ステータスバーをブランクにする
	}
	ChangeMenuStatus(EnableFlag);
	return TRUE;
}

bool CMyWnd::OnSetFocus(WPARAM wParam, LPARAM lParam) {

	//リッチエディットコントロールにフォーカスを移す
	SetFocus(GetDlgItem(FocusedChild(), IDC_CHILD_CONTROL));
	return TRUE;
}

bool CMyWnd::OnFindReplace(LPARAM lParam) {

	Edit.FindReplace(lParam);	//検索・置換処理
}

bool CMyWnd::OnMDIFrameSize(WPARAM wParam, LPARAM lParam) {

	MDIClientAutoSize(SBar.GetHandle(), TBar.GetHandle());
	TBar.AutoSize();
	SBar.AutoSize();
	//データファイル付きで起動された場合の対応
	if(ByFile) {
		for(int i = 1; i < arg.c(); i++) {
			CreateMDIChild("MDIChildWnd", arg.v(i));
			Edit.LoadFile(arg.v(i));
			ChangeMenuStatus(TRUE);
			SBar.SetText(3, arg.v(i));
		}
		ByFile = FALSE;	//一回だけの処理
 	}
	return TRUE;
}

bool CMyWnd::OnMDIChildSize(WPARAM wParam, LPARAM lParam) {

	//リッチエディットコントロールのサイズをMDI子ウィンドウのクライアント領域にあわす
	MoveWindow((HWND)GetDlgItem(FocusedChild(), IDC_CHILD_CONTROL), 0, 0,
				LOWORD(lParam), HIWORD(lParam), TRUE);
	return TRUE;
}

bool CMyWnd::OnNotify(WPARAM wParam, LPARAM lParam) {

	if(((LPNMHDR)lParam)->code == TTN_NEEDTEXT) {
		((LPTOOLTIPTEXT)lParam)->hinst = m_hInstance;
		switch(((LPTOOLTIPTEXT)lParam)->hdr.idFrom) {
			case IDM_NEW:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_00);
				break;
			case IDM_OPEN:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_01);
				break;
			case IDM_SAVE:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_02);
				break;
			case IDM_SETPRINT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_03);
				break;
			case IDM_PRINT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_04);
				break;
			case IDM_UNDO:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_05);
				break;
			case IDM_CUT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_06);
				break;
			case IDM_COPY:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_07);
				break;
			case IDM_PASTE:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_08);
				break;
			case IDM_FIND:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_09);
				break;
			case IDM_REPLACE:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_10);
				break;
			case IDM_LEFT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_11);
				break;
			case IDM_CENTER:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_12);
				break;
			case IDM_RIGHT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_13);
				break;
			case IDM_FONT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_14);
				break;
			case IDM_LINDENT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_15);
				break;
			case IDM_LOUTDENT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_16);
				break;
			case IDM_RINDENT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_17);
				break;
			case IDM_ROUTDENT:
				((LPTOOLTIPTEXT)lParam)->lpszText = MAKEINTRESOURCE(String_18);
				break;
			return TRUE;
		}
	}
	else if(((NMHDR*)lParam)->code == EN_SELCHANGE) {
		char str[19];	//"(6桁)+行：(6桁)+桁" + NULL, //"xxxxxxxxxxxバイト" + NULL
		wsprintf(str, "%dバイト", Edit.GetSize());
		SBar.SetText(1, str);
		wsprintf(str, "%d行：%d桁", Edit.GetPos()->y + 1, Edit.GetPos()->x + 1);
		SBar.SetText(2, str);
	}
	else if(((NMHDR*)lParam)->code == EN_MSGFILTER) {
		//☆リッチエディットコントロールからの通知はMSGFILTER構造体で受け取る
		switch (((MSGFILTER*)lParam)->msg) {
		case WM_RBUTTONUP:
			//ウインドウの位置情報を取得
			RECT rec;
			GetWindowRect(m_hWnd, &rec);
			//ポップアップメニューの表示場所を設定
			POINT pt;
			GetCursorPos(&pt);
			//ポップアップメニューの表示
			TrackPopupMenu(g_hPopup, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, m_hWnd, &rec);
			break;
		default:
			break;
		}
	}
	else
		return FALSE;
}

bool CMyWnd::OnChildClose(HWND hWnd) {

	if(SendDlgItemMessage(hWnd, IDC_CHILD_CONTROL, EM_GETMODIFY, 0, 0))
		if(MessageBox(m_hWnd, "テキストが変更されています。保存しますか？", "保存確認",
					MB_YESNO | MB_ICONQUESTION) == IDYES)
			OnSave(hWnd);
	SBar.SetText(1, "");
	SBar.SetText(2, "");
	SBar.SetText(3, "");
	return FALSE;
}

bool CMyWnd::OnClose(WPARAM wParam, LPARAM lParam) {

	if(MessageBox(m_hWnd, "終了しますか", "終了確認",
					MB_YESNO | MB_ICONQUESTION) == IDYES)
		//処理をするとDestroyWindow、PostQuitMessageが呼ばれる
		return TRUE;
	else
		//そうでなければウィンドウではDefWindowProc関数をreturn、ダイアログではreturn FALSEとなる。
		return FALSE;
}

bool CMyWnd::OnDropFiles(WPARAM wParam) {

	char FileName[MAX_PATH];
	//ドラッグアンドドロップされたファイルの数取得
	int num = DragQueryFile((HDROP)wParam, 0xFFFFFFFF, NULL, 0);
	//ドラッグアンドドロップされたファイル名取得と処理
	for(int i = 0; i < num; i++) {
		DragQueryFile((HDROP)wParam, i, FileName, sizeof(FileName));
		CreateMDIChild("MDIChildWnd", FileName);
		Edit.LoadFile(FileName);
		ChangeMenuStatus(TRUE);
		SBar.SetText(3, FileName);
	}
	DragFinish((HDROP)wParam);
	return TRUE;
}

/////////////////////////////////
//主ウィンドウCMyWndの関数の定義
//メニュー項目、コントロール関数
/////////////////////////////////
bool CMyWnd::OnNew() {

	CreateMDIChild("MDIChildWnd", "[無題]");
	ChangeMenuStatus(TRUE);
	SBar.SetText(3, "[無題]");
	return TRUE;
}

bool CMyWnd::OnOpen() {

	char* FileName = cmndlg.GetFileName(m_hWnd, "総てのファイル(*.*)\0*.*\0リッチテキストファイル(*.rtf)\0*.rtf\0\0");
	if(!FileName)
		MessageBox(m_hWnd, "操作はキャンセルされました", "メッセージ", MB_OK | MB_ICONERROR);
	else {
		CreateMDIChild("MDIChildWnd", FileName);
		Edit.LoadFile(FileName);
		ChangeMenuStatus(TRUE);
		SBar.SetText(3, FileName);
	}
	return TRUE;
}

bool CMyWnd::OnSave(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	char FileName[MAX_PATH];
	SendMessage(FocusedChild(), WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)FileName);
	if(!lstrcmp(FileName, "[無題]"))
		OnSaveas(hWnd);
	else
		Edit.SaveFile(FileName);
	return TRUE;
}

bool CMyWnd::OnSaveas(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	char* FileName = cmndlg.GetFileName(m_hWnd, "総てのファイル(*.*)\0*.*\0リッチテキストファイル(*.rtf)\0*.rtf\0\0", FALSE);
	if(!FileName)
		MessageBox(m_hWnd, "操作はキャンセルされました", "メッセージ", MB_OK | MB_ICONERROR);
	else {
		Edit.SaveFile(FileName);
		SendMessage(FocusedChild(), WM_SETTEXT, 0, (LPARAM)FileName);
		SBar.SetText(3, FileName);
	}
	return TRUE;
}

bool CMyWnd::OnSetprint() {

	Edit.SetPrinter();
	return TRUE;
}

bool CMyWnd::OnPrint(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	char FileName[MAX_PATH];
	SendMessage(FocusedChild(), WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)FileName);
	Edit.Print(FileName);
	return TRUE;
}

bool CMyWnd::OnExit() {

	//リッチエディットに変更がある場合
	if(SendMessage(GetDlgItem(FocusedChild(), IDC_CHILD_CONTROL), EM_GETMODIFY, 0, 0)) {
		if(MessageBox(m_hWnd, "テキストが変更されています。\n保存しますか？",
						"保存確認", MB_YESNO | MB_ICONQUESTION) == IDYES)
			OnSave(FocusedChild());
	}
	SendMessage(m_hWnd, WM_CLOSE, 0, 0);
	return TRUE;
}

bool CMyWnd::OnUndo(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	SendDlgItemMessage(FocusedChild(), IDC_CHILD_CONTROL, EM_UNDO, 0, 0);
	return TRUE;
}

bool CMyWnd::OnCut(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	SendDlgItemMessage(FocusedChild(), IDC_CHILD_CONTROL, WM_CUT, 0, 0);
	return TRUE;
}

bool CMyWnd::OnCopy(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	SendDlgItemMessage(FocusedChild(), IDC_CHILD_CONTROL, WM_COPY, 0, 0);
	return TRUE;
}

bool CMyWnd::OnPaste(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	SendDlgItemMessage(FocusedChild(), IDC_CHILD_CONTROL, WM_PASTE, 0, 0);
	return TRUE;
}

bool CMyWnd::OnSelall(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	CHARRANGE cr;
	cr.cpMin = 0;
	cr.cpMax = -1;
	SendDlgItemMessage(FocusedChild(), IDC_CHILD_CONTROL, EM_EXSETSEL, 0, (LPARAM)&cr);
	return TRUE;
}

bool CMyWnd::OnFind(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	m_hDlg = Edit.m_hFRDlg = FindText(Edit.SetFRDlg('F'));
	return TRUE;
}

bool CMyWnd::OnReplace(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	m_hDlg = Edit.m_hFRDlg = ReplaceText(Edit.SetFRDlg('R'));
	return TRUE;
}

bool CMyWnd::OnFont(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.SelFont();
	return TRUE;
}

bool CMyWnd::OnLeft(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Align('L');
	return TRUE;
}

bool CMyWnd::OnCenter(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Align('C');
	return TRUE;
}

bool CMyWnd::OnRight(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Align('R');
	return TRUE;
}

bool CMyWnd::OnLindent(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Indent(1);
	return TRUE;
}

bool CMyWnd::OnLoutdent(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Indent(2);
	return TRUE;
}

bool CMyWnd::OnRindent(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Indent(3);
	return TRUE;
}

bool CMyWnd::OnRoutdent(HWND hWnd) {

	Edit.SetHandle(GetDlgItem(hWnd, IDC_CHILD_CONTROL));
	Edit.Indent(4);
	return TRUE;
}

bool CMyWnd::OnTilehorz() {

	SendMessage(m_hMDIClient, WM_MDITILE, MDITILE_HORIZONTAL, 0);
	return TRUE;
}

bool CMyWnd::OnTilevert() {

	SendMessage(m_hMDIClient, WM_MDITILE, MDITILE_VERTICAL, 0);
	return TRUE;
}

bool CMyWnd::OnCascade() {

	SendMessage(m_hMDIClient, WM_MDICASCADE, 0, 0);
	return TRUE;
}

bool CMyWnd::OnArrange() {

	SendMessage(m_hMDIClient, WM_MDIICONARRANGE, 0, 0);
	return TRUE;
}

bool CMyWnd::OnBrief() {

	MessageBox(m_hWnd,
	"RTEditorはテキストやリッチテキスト用のエディターです。\n"\
	"拡張子がリッチテキスト（*.rtf）の場合その形式で取り扱い、*.txt等"\
	"その他の拡張子のファイルではテキストファイルとして取り扱います。\n"\
	"起動はダブルクリックの他、ファイルをプログラムアイコンへドロップすることでも可能です。"\
	"また起動後もドラッグアンドドロップでファイルを開くことができます。",
	"簡単な説明", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

bool CMyWnd::OnShortCut() {

	MessageBox(m_hWnd,
	"Ctrl+N−新規作成\nCtrl+O−ファイルを開く\nCtrl+S−ファイルの保存\nCtrl+P−印刷\nCtrl+X−終了\n\n"\
	"Ctrl+U−元に戻す\nCtrl+T−切り取り\nCtrl+C−コピー\nCtrl+V−貼り付け\n\nCtrl+F−文字列の検索\n"\
	"Ctrl+R−文字列の置換\n\nF1−ショートカットキーの解説\nF2−バージョン情報",
	"ショートカットキーの解説", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

bool CMyWnd::OnVer() {

	versiondlg.DoModal(m_hWnd, "IDD_VERSION", versiondlgProc);
	return TRUE;
}

///////////////////////////////
//ユーザーダイアログの関数定義
//コントロール関数
///////////////////////////////
bool VERSIONDLG::OnInit(WPARAM wParam, LPARAM lParam) {

	versiondlg.SendItemMsg(IDC_VERTXT, WM_SETTEXT,
					0, (LPARAM)"RTEditor Ver 1.2\nCopyright by Y-Sama\nSeptember, 2020");
	return TRUE;
}

bool VERSIONDLG::OnIdok() {

	versiondlg.EndModal(TRUE);
	return TRUE;
}
