問題タブ [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 に答える
1017 参照

python - PyQtのカスタム/所有者の描画コントロール?

私はPyQtを学んでいて、下の図のようなカスタム/所有者の描画コントロールを作成できるかどうか疑問に思っています。

代替テキストhttp://lh5.ggpht.com/_5XDoB4MglkY/SpoT51SXR1I/AAAAAAAAFcU/ZXjzmhRyDVA/s400/SearchBox.png

検索ボックスの右端に拡大鏡アイコンがあります。このようなことはPyQtで可能ですか?ありがとう!

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

c# - 所有者が描画したリストボックスでコントロールを使用する正しい方法は何ですか?

所有者が描いたリストボックスを試しています。リストボックス内の特定の項目にテキストボックスを追加しています。ただし、スクロールを開始すると、テキストボックスが正しい場所に表示されません。これを行う正しい方法は何ですか?これが私が使用しているコードです。

Form1.cs

Program.cs

Form.Designer.cs

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

definition - オーナー描画リストボックスとは?

無知で申し訳ありませんが、「所有者描画」リストボックスという用語に出くわしました。これを経験した人は、それが正確に何であるかを説明できますか?

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

c# - 非長方形 (所有者描画) ツールチップ コントロールの周囲の透明度?

Draw イベントに応答して、WinForms ToolTip コントロールの外観をカスタマイズしています。ツールチップの角の一部を丸くしたいだけです。ToolTip が最初に表示されたときにすべてが完璧に見えるように、すべてが機能しています。ただし、その後の表示では、丸みを帯びた長方形の塗りつぶされていない領域には、ToolTip が最初に表示されたときに背景にあったものが引き続き表示されます。

問題のスクリーンショット (どうやらインライン化する権利がありません): http://tinypic.com/r/30xa3w9/3

画像では、左上隅に残りのアーティファクトが表示されます。ここでは、次のように透明にする (灰色の背景を表示する) ようにします。

tinypic.com/r/mvn8eo/3 (複数のリンクを追加する権利もありません)

描画コードは次のとおりです。

GetRoundedRectangle 関数 (含まれていません) は、必要な丸みを帯びたジオメトリの適切な GraphicsPath を計算するだけです。

BackColor を Color.Transparent に設定した後、args.DrawBackground への呼び出しを追加しようとしましたが、実際には透明ではなく、フォームの背景の濃い灰色で領域を埋めただけでした。これは、典型的な「シミュレートされた」透明度だと思いますWinフォーム。

補足として、IsBalloon が true に設定されたカスタマイズされていない ToolTip は、正しい透明度を持つ長方形ではありません。

誰でもこの問題の修正を提案できますか?

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

c# - c# MeasureItemEvent ハンドラー: e.ItemHeight が変更されない

それは私ですか、それともアイテムの高さ - e.ItemHeight - をリストボックスに一度だけ設定できますか?

ownerDrawing リストボックスで MeasureItemEvent を処理し、e.ItemHeight を適切な値に設定しましたが、設定された最初の高さだけが使用されます。

おっと、私はこれに慣れていません。申し訳ありません。これはコードです (DrawItemHandler はもちろん実際のプログラムにあります):

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

winforms - WinFormsでownerdrawトラックバーを作成する方法

スライダーサム用のカスタムグラフィックを使用してトラックバーを作成しようとしています。私は次のコードから始めました:

ただし、OnPaintを呼び出すことはありません。他の誰かがこれに出くわしますか?以前にこの手法を使用してownerdrawボタンを作成しましたが、何らかの理由でTrackBarでは機能しません。

PS。はい、質問#625728を見ましたが、解決策は、コントロールを最初から完全に再実装することでした。既存のコントロールを少し変更したいだけです。

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

user-interface - 所有者が描いたコンボボックスが空で表示されるのはなぜですか?

WTL コンボボックスをサブクラス化し、コンボボックスのアイテムをオーナー描画しています。コントロールには属性がCBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_OWNERDRAWVARIABLEあり、ミックスイン クラス COwnerDraw を使用して DrawItem() と MeasureItem() を実装しています。ドロップダウン リストがダウンしている場合、アイテムは正しく描画されます。ただし、ドロップダウン リストが表示されている場合、コンボ ボックス コントロールは空であり、アイテムは描画されません。私は何を間違っていますか?

WTL クラスは次のようになります。

このクラスはダイアログで使用され、次のようにサブクラス化されます。

コントロール属性を にCBS_OWNERDRAWFIXED変更しても何も変わりません。


編集: najmeddine の助けのおかげで、ドロップダウン リストの項目だけでなく、実際のコンボ ボックスを描画するには WM_PAINT を処理する必要があることがわかりました。残念ながら、コンボボックス コントロールもすべて自分で描画する必要があります。コントロールの「内側」のみを描画する必要があるように、GDI に境界線を描画させて矢印をドロップさせる方法はありますか?

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

delphi - TVirtualStringTreeのホットノード座標を取得するにはどうすればよいですか?

マウスを上に置いたときに、 VirtualStringTreeのセルを別の方法でペイントしようとしています。ホットノードの座標を検出するにはどうすればよいですか?HotNodeプロパティがあることは知っていますが、マウスカーソルの下にあるノードのみを返します。そのノードのセル座標(X、Y)を取得する必要があります。

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

.net - 項目が仮想 ListView に表示されるかどうかのテスト

仮想および OwnerDraw モードで ListView コントロールを使用して、多数の項目を表示しています。描画イベントまたは RetrieveVirtualItem イベントをトリガーせずに、特定の項目が (コントロールのクライアント領域内で) 表示されているかどうかをテストする方法はありますか?

問題は、定期的にリストビューにアイテムを追加するバックグラウンド スレッドがあることです。しかし、何らかの理由で、アイテムを追加する (VirtualListSize をインクリメントする) たびに、最後に追加されたアイテムの RetrieveVirtualItem がトリガーされます。そしてもちろん、実際に見えるアイテムだけを描きたいです。

何か案は?

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

winforms - 右揃えの TabControl の縦書きテキスト

タブコントロールの各タブのテキストを垂直に表示しようとしています。私はコントロールに踏み込んだことがないので、ちょっと行き詰まっています。左に回転したかのようにテキストを表示するコードを見つけました。タブ上で右(縦)に回転したように表示したい。スケルトン コードは次のとおりです。