掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Unicode環境で、ツールチップを利用するには? (ID:71868)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
前日に続いて質問させて頂きます。 ダイアログで表示するコントロールそれぞれをツールチップに関連づけております。 マルチバイト文字環境でビルドすると問題無く動作しますが、Unicodeでビルドすると関連づけに失敗するのか コントロール上にマウスカーソルを置いても、何も表示されません。 関連付けコードは下記のようになっております。 /* 関連づけるコード */ /* * hWndToolTip: ツールチップのハンドル * hWnd: ダイアログのハンドル * GetDlgItem( hWnd, IDC_BUTTON ): 関連付ける対象のボタンハンドル * MAKEINTRESOURCE(IDC_BUTTON): 表示するメッセージ(中身はリソースのストリングテーブルで定義) */ addTooltip( hWndToolTip, hWnd, GetDlgItem( hWnd, IDC_BUTTON ), MAKEINTRESOURCE(IDC_BUTTON) ); /* resource.h */ #define IDC_BUTTON 0x100 /* resource.rc */ STRINGTABLE { IDC_BUTTON "ボタンです" } /* 関連付けを行う関数 */ void addTooltip( HWND hWndTip, HWND hWndShow, HWND hWnd, TCHAR *pszText ) { TOOLINFO toolInfo = { 0 }; toolInfo.cbSize = sizeof(TOOLINFO); toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS; toolInfo.hwnd = hWndShow; toolInfo.uId = (UINT_PTR)hWnd; toolInfo.hinst = (HINSTANCE)(GetWindowLongPtr( hWnd, GWLP_HINSTANCE )); if( pszText != NULL ) { toolInfo.lpszText = pszText; } else { toolInfo.lpszText = LPSTR_TEXTCALLBACK; } SendMessage( hWndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo ); return; } マルチバイト環境ですと、SendMessageで1が返りますが Unicode環境ですと、SendMessageで0が返ります。 共にGetLastErrorを呼んでも、0が返ってきており、ヘッダを追っても きちんとTOOLINFOは、TOOLINFOWとTOOLINFOAに切り替えられているので 何故Unicodeにすると表示されないのかが、現在見切りも付けられない状態です。 どうぞご教授の程お願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.