複数行のツールヒントを実装する方法
複数行のツールヒントを使用すると、複数の行にテキストを表示できます。
これらは、一般的なコントロールのバージョン 4.70 以降でサポートされています。 アプリケーションでは、表示矩形の幅を指定して、TTM_SETMAXTIPWIDTH メッセージを送信して複数行ツールヒントを作成します。 この幅を超えるテキストは、表示領域を拡大するのではなく、次の行に折り返します。 必要に応じて、追加の線に合わせて矩形の高さが増加します。 ツールヒント コントロールは行を自動的に折り返すか、キャリッジ リターン/ライン フィードの組み合わせ \r\n を使用して特定の場所で改行を強制できます。
実行後の表示は、次の図のようになります。
Note
NMTTDISPINFO 構造体の szText メンバーにが指定したテキスト バッファーは、80 文字のみ対応しています。 長い文字列を使用する必要がある場合は、NMTTDISPINFO の lpszText メンバーを、目的のテキストを含むバッファーを指します。
知っておくべきこと
テクノロジ
前提条件
- C/C++
- Windows ユーザー インターフェイス プログラミング
手順
複数行のツールヒントの実装
次のコード フラグメントは、単純な TTN_GETDISPINFO 通知ハンドラーの例です。 表示する矩形を 150 ピクセルに設定することで、複数行のツールヒントを有効にします。 最初の単語の後に手動の改行が挿入され、改行はハードやソフトである可能性があることを示します。
case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case TTN_GETDISPINFO:
LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)lParam;
SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);
wcscpy_s(pInfo->szText, ARRAYSIZE(pInfo->szText),
L"This\nis a very long text string " \
L"that must be broken into several lines.");
break;
}
break;
}
関連トピック