問題タブ [ownerdrawn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3290 参照

delphi - csOwnerDrawFixed スタイルの Combobox はどのように csDropDown スタイルのように動作しますか?

スタイル プロパティをcsOwnerDrawFixedに設定してTComboBoxコンポーネントを使用しています。OnDrawItemを実装しています。すべて正常に動作します。次に、 csDropDownスタイルがあったときのように動作するコンボ ボックスが必要です (csOwnerDrawFixed スタイルでは、csDropDownList スタイルのように動作します)。つまり、内部エディターを使用しています。これは可能ですか?

0 投票する
3 に答える
7191 参照

c# - ListView コントロールのちらつき (OwnerDraw、Virtual)

この質問は、 ownerdraw と virtualmode を使用したリストビューでのちらつきのフォローアップと見なされる場合があります。

ListViewコントロールがありVirtual mode、カスタム描画を実行しようとしています。アイテムのレンダリングは、次のメソッド オーバーライドを介して行われます。

参照されている質問で述べたように、カスタム描画では、マウス オーバー イベントでちらつきが発生します。デバッガーは、発生するカスタム描画イベントが過剰なために発生することを教えてくれます。


今 - 参照された質問に対する受け入れられた回答は、次のことを示しています。

これは .NET の ListView のバグであり、ダブル バッファリングでは回避できません。

  • では、その情報はどの程度信頼できるのでしょうか。それは本当にバグですか?それとも、単にメッセージの一部を切り取り、目に見える動作が変わらないことを願っているのでしょうか?

  • 所有者の描画ルーチンがある場合、これらのイベントを抑制ListViewして描画のみを実行できるというのは本当ですか?Virtual Mode,Custom DrawWM_PAINT

  • コントロールが初期動作を変更せずSystem.Windows.Formsにすべての描画を実行できるようにするための前提条件は何ですか?WM_PAINT

0 投票する
2 に答える
9540 参照

delphi-7 - 列名のテキストに応じて stringgrid 列に色を付ける

私はこれをやっています:

(例)日曜日(SUN)が表示されたときに列に色を付ける方法はありますか? SUN 列 (ずっと下) を他の列とは異なる色で表示したいと思います。

0 投票する
1 に答える
5384 参照

delphi - AdvancedCustomDrawItem中にTTreeViewのスタイル付き選択長方形を描画するにはどうすればよいですか?

TTreeViewイベントを使用して最初からカスタム描画を行っていOnAdvancedCustomDrawItemますが、所有者描画アイテムの背景にこれらの選択範囲とホット長方形を正しくレンダリングする方法を知りたいですか?Vista / 7スタイルなので、背景を単色で塗りつぶすことはできません。

ここに画像の説明を入力してください

ステージでアイテムを描画しようとしましたが、ステージcdPostPaintを離れて選択範囲の背景を描画すると、アイテムのテキストを含む完全なデフォルトの描画が発生します。DefaultDraw := TruecdPrePaint

0 投票する
0 に答える
254 参照

winforms - TreeView のエディット ボックスの位置を設定する

WinForms で、TreeView のエディット ボックスの位置をプログラムで設定できるかどうかを知りたいです。

詳細を教えてください。DrawMode を OwnerDrawAll に設定して、所有者が TreeView (System.Windows.Forms.TreeView) を描画しています。最初にアイコンを描画し、次に階層、アイテム関連のアイコン、テキストの順に描画します。

上のグラフで、[X][O]は最初のアイコンの表現であり、#記号はアイテム関連のアイコンの表現です。

問題は、通常の TreeView の方法を使用してテキストを編集するときに、LabelEdit を true に設定すると、編集ボックスがアイコンの横ではなくアイコン (グラフの # 記号) に重なって表示されることです。これは、テキストのレンダリングをシフトしたためです。もう 1 つの問題は、編集ボックスを表示するためにクリックする場所 (長方形) もずれていることです。

Indent プロパティをより高い値に設定してから、階層、アイテム関連のアイコン、およびテキストのレンダリングを左に戻して適切に配置しようとしましたが、この場合、ノードごとにインデントが 2 倍になります。

数学的には[spacing = level * indent * 2]

必要な場所[spacing = indent + (level * indent)]

ノードごとに Indent プロパティを個別に設定できないため、このソリューションは有効ではありません。

OnBeforeLabelEdit イベントでエディット ボックス ハンドルを取得しようとしましたが、成功しましたが、それを使用して何も役に立たないことがわかりました。

カスタム TextBox を使用して TreeView に配置することを考えていますが、既に実装されている通常の方法を使用することをお勧めします。

前もって感謝します。

0 投票する
1 に答える
339 参照

winapi - WinApi所有者CComboBox編集ウィンドウ、CComboBox内の編集ウィンドウ

CComboBox編集ウィンドウ(CComboBoxの最上部のウィンドウ/ ComboBox内の編集ウィンドウ)を所有する可能性があるかどうか質問があります。CComboBoxがOWNERDRAWであり、アイテムを描画できるようにしたためです(DrawItem()メソッドを使用)。また、編集項目(CComboBoxコントロールの一番上の項目)に描画したい問題は、編集ウィンドウであり、入力できる(描画できない)ことです。このウィンドウを「描画可能」にするにはどうすればよいですか?助言がありますか?ありがとう

0 投票する
1 に答える
652 参照

c# - WPFResourceDictionaryベースのウィンドウでウィンドウオブジェクトを取得する

VS2008では、ソリューションにリソースディクショナリテンプレートを追加し、このテンプレートに「MyWinStyle.xaml」という名前を付けました。以下は私のウィンドウで使用されているスタイルです:.....。

これは私のXMALコードです。ownerdrawウィンドウのサイズを変更できるようにする関数を追加したい場合、問題が発生します。つまり、コンストラクターでWindowオブジェクトを取得できません(この記事に基づいて、作成したい)サイズ変更可能な私のウィンドウ:http://blog.kirupa.com/ ?p = 256 )以下は私のコードです:

0 投票する
2 に答える
2849 参照

c++ - OwnerDraw Window

私は自分のリストボックスの描画に成功していません。コードは次のとおりです。

次のように ListBox を作成します。

誰かが私に何が悪いのか説明してもらえますか? 黒の背景と赤のテキストを持つリストボックスを作成しようとしています.アイテムが選択されると、テキストは白に変わります.しかし、リストボックスは何も追加しません.