2011-10-23 22 views
3

私のC++ win32アプリケーションに単純なテキストボタンを追加したいと思います。私は、CreateWindowEx関数を使用してボタンを作成していますが、そうする正しいスタイルを理解することはできません。私はテキストのみのボタンを表示し、ユーザーがそれをクリックするとメッセージを受け取りたいと思っています。私が得たいスタイルは、Windows 7のシステム音量コントロール(「ミキサー」と書かれています)のテキストボタンと同じです。可能であれば、私はツールチップも表示したいと思います。ミキサーコントロールがより多くのボタンよりハイパーリンクコントロールのように見えることC++ win32テキストのみのボタンを作成

enter image description here

答えて

3

BS_OWNERDRAWスタイルの "Button"クラスウィンドウを作成し、WM_DRAWITEMメッセージを処理できます。 WM_DRAWITEMメッセージハンドラでは、単にテキストを表示することができます。

+0

テキストのクリックに対してのみ反応し、ホットリンク処理を行う必要があります。 –

5

。それが必要な場合は、SysLinkコントロールに行きます。

3

実際にはそのボタンはオーナーの描画ボタンです。マウスの移動メッセージを聴き、その上にマウスを置くと、テキストに下線が引かれます(syslinkコントロールにはこの動作がありません)。それ以外の場合は在庫ボタンです。

+0

なぜSysLinkではなくオーナーの描画ボタンを選択しましたか?おそらくあなたはホットトラッキングサポートを追加するためにSysLinkチームを説得できたでしょうか?または、所有者の描画ボタンのいくつかの利点はありますか?おそらくアクセシビリティ。 –

+0

利点の1つは、SysLinkチームの機能要求を提出する代わりに、今すぐあなたの問題*を解決できることです。その後、決定を延期してから、 「申し訳ありません、私たちは時間がなくなりました」という要求に応えています。あなたは最後に完全に回避可能な緊急事態を作りました。今、最後の段階でバグを修正する必要があります。 –

+0

レイモンドさん、ありがとうございました。問題のボタンは約150〜200行のコードであり、その大半はテーマが無効になっているケースを処理するために費やされます。 –

関連する問題