//////////////////////////////////////////
// ToolTipProc.h
// Copyright (c) 11/14/2022 by ECCSkelton
//////////////////////////////////////////

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

	//CTTIPクラスではTOOLINFOW構造体を使っていますが、その大きさは最後の
	DWORD dwVersion = 0;
	HINSTANCE dll = LoadLibraryW(L"comctl32.dll");
	if(dll) {
		DLLGETVERSIONPROC GetVersion = (DLLGETVERSIONPROC)GetProcAddress(dll,"DllGetVersion");
		if(GetVersion){
			DLLVERSIONINFO dvi;
			HRESULT hr;
			memset(&dvi, 0, sizeof(dvi));
			dvi.cbSize = sizeof(dvi);
			hr = GetVersion(&dvi);
			if(SUCCEEDED(hr)) {
				WCHAR str[512];
				wsprintfW(str, L"Version:%d.%d.%d", dvi.dwMajorVersion, dvi.dwMinorVersion, dvi.dwBuildNumber);
				MessageBoxW(m_hWnd, str, L"Version of comctl32.dll", MB_OK | MB_ICONERROR);
			}
		}
		FreeLibrary(dll);
	}

	LPWSTR str = L"今回新たに作ったCTTIPクラスのテストを行います。よろしくお願いします。";
	SendItemMsg(IDC_EDIT, WM_SETTEXT, 0, (LPARAM)str);
	if(!m_Tip.SetToolTip(m_hWnd, IDC_EDIT, str, TRUE))
		MessageBoxW(m_hWnd, L"ツールチップの設定に失敗しました", L"エラー", MB_OK | MB_ICONERROR);
	MessageBoxW(m_hWnd, L"ツールチップを設定しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
	SendMessage(m_Tip.m_hTip, TTM_ACTIVATE, TRUE, 0);
	m_Tip.SetWidth(320);	//任意の幅を許可する場合は size == -1
	MessageBoxW(m_hWnd, L"ツールチップの最大幅を320ピクセルに設定しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

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

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

//ダイアログベースの場合はこれが必要
bool CMyWnd::OnDestroy(WPARAM wPram, LPARAM lParam) {

	PostQuitMessage(0);
	return TRUE;
}

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

	m_Tip.SetBackColor(RGB(255, 0, 0));
	MessageBoxW(m_hWnd, L"ツールチップの背景色を赤に設定しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
return TRUE;
}

bool CMyWnd::OnBtntc() {

	m_Tip.SetTextColor(RGB(0, 255, 0));
	MessageBoxW(m_hWnd, L"ツールチップの文字色を緑に設定しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

bool CMyWnd::OnBtnud() {

	m_Tip.UpdateText(L"今度は文字列を変更してみました。どうでしょう？ちゃんと変更されたかな？成功していると嬉しいです。");
	MessageBoxW(m_hWnd, L"ツールチップの文字列を変更しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

bool CMyWnd::OnBtnft() {

	m_Tip.SetFont(12, L"ＭＳ 明朝");
	MessageBoxW(m_hWnd, L"ツールチップのフォントをＭＳ明朝の12ptに設定しました", L"CTTIP", MB_OK | MB_ICONINFORMATION);
	return TRUE;
}

bool CMyWnd::OnIdok() {

	SendMsg(WM_CLOSE, 0, 0);
	return TRUE;
}

///////////////////////////////
//ユーザーダイアログの関数定義
//コントロール関数
///////////////////////////////
