ヒントウィンドウ(THintWindow)を任意の位置に、任意のタイミングで表示する方法を紹介します。
サンプルコードでは、_TCharのマップ先は「wchar_t」に設定しています。
ヒントウィンドウを表示するには、THintWindow.ActivateHint()メソッドを使用します。
class TForm1 : public TForm
{
private: // ユーザー宣言
THintWindow* FHintWin;
};
void __fastcall TForm1::FormCreate(TObject *Sender)
{
FHintWin = new THintWindow(this);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
const int x = 0; //ヒントの表示位置(X座標)
const int y = 0; //ヒントの表示位置(Y座標)
UnicodeString hint = "表示するヒント";
TRect rect = Bounds(0, 0, 0, 0);
DrawText(FHintWin->Canvas->Handle, hint.c_str(), -1, &rect, DT_CALCRECT | DT_LEFT);
OffsetRect(rect, x, y);
//ヒントウィンドウの微調整
rect.Right += 6;
rect.Bottom += 2;
//ヒントウィンドウを表示する
FHintWin->ActivateHint(rect, hint);
}
表示したヒントウィンドウを隠すには、THintWindow.ReleaseHandle()メソッドを使用します。
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//ヒントウィンドウを隠す
FHintWin->ReleaseHandle();
}