//////////////////////////////////////////////////////////////////////////
//ツールヒントコントロール（ツールチップ）付与関数
//【注意】
//アプリケーショの冒頭でInitcommoncontrols()関数を実行してください
//【概要】
//ツールチップをダイアログのコントロールに付ける
//【引数】
//hWnd		ダイアログ（ウィンドウでもよいが）のウィンドウハンドル
//CtrlID	コントロールID
//pszText	表示文字列
//【戻り値】
//ツールチップのウィンドウハンドル（作りっぱなしでよいみたいです）
//【参考】
//https://docs.microsoft.com/ja-jp/windows/win32/controls/tooltip-controls
//なお、TTF_IDISHWNDを外した、IDだけでは表示されなかった
//////////////////////////////////////////////////////////////////////////
HWND SetToolTip(HWND hWnd, int CtrlID, PTSTR pszText) {

	if(!CtrlID || !hWnd || !pszText) {
		return (HWND)NULL;
	}
	//対象コントロールのハンドルを取得する
	HWND hCtrl = GetDlgItem(hWnd, CtrlID);
	//文字列リソースのある親ウィンドウ（ダイアログ）のインスタンス
	HINSTANCE hInst = (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
	//ツールチップの作成
	HWND hTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
					WS_POPUP | TTS_ALWAYSTIP | TTS_BALLOON,
					CW_USEDEFAULT, CW_USEDEFAULT,
					CW_USEDEFAULT, CW_USEDEFAULT,
					hWnd, NULL, 
					hInst, NULL);
	if(!hCtrl || !hTip) {
		return (HWND)NULL;
	}
	//ツールチップをコントロールに関連付ける
	TOOLINFO toolInfo = { 0 };	//ゼロクリアー
	toolInfo.cbSize = sizeof(toolInfo);
	toolInfo.hwnd = hWnd;
	toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
//	toolInfo.uFlags = TTF_SUBCLASS;
	toolInfo.uId = (UINT_PTR)hCtrl;
//	toolInfo.uId = (UINT_PTR)CtrlID;
	toolInfo.hinst = hInst;
	toolInfo.lpszText = pszText;
//	GetClientRect(hCtrl, &toolInfo.rect);	//もしuFlagsにTTF_IDISHWNDがあれば無視される
	SendMessage(hTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
	SetWindowPos(hTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);

	return hTip;
}
