Office XPスタイルのフォーカス/選択リストボックスアイテムを表示する最もシンプルでクリーンな方法は何ですか?選択矩形のようなOffice XPテーマのリストボックスを作成するには?
はアイデアがより明確に示すために、このサンプル画像を参照してください:
私はlbOwnerDrawFixed
またはlbOwnerDrawVariable
のいずれかにリストボックスのスタイルを設定し、OnDrawItemイベントを変更する必要があると思いますか?
これは私が立ち往生だところ、私は、そこに書くことがどのようなコードは本当にわからない、これまで私が試している:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
if odSelected in State then
begin
Brush.Color := $00FCDDC0;
Pen.Color := $00FF9933;
FillRect(Rect);
end;
TextOut(Rect.Left, Rect.Top, TListBox(Control).Items[Index]);
end;
end;
私は働かないことが知られての必要があり、私はファンキーのすべての種類を取得起こって物事:
を私が間違って何をやっているが、もっと重要なのはどのような私はそれを動作させるために変更する必要がありますか?
ありがとうございました。
私は、リストボックスをテーマにした選択のような種類があるとは思いません。リストボックスには['LBCP_ITEM'](http://msdn.microsoft.com/en-us/library/windows/desktop/bb(v = vs.85).aspx)の部分がありますが、非所有者の描画リストボックス - 退屈。だから多分テーマ選択部分を借りることができます。 ['this post'](http://stackoverflow.com/a/10936108/960757)に記載されているAndrewのようなツリービューから。リストボックスの状態のコードを変更するだけで済みます。 – TLama
これは私が心配していたものです.TreeviewやListviewとは異なり、リストボックスはテーマ選択をペイントします。 –
ハードコーディングの色は、ユーザーが完全に異なる配色になっていることを忘れないでください。 –