問題タブ [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.
.net - 所有者が描画したタブコントロールのタブが広い
タブコントロールをカスタム描画しようとしています。によって返される寸法を使用してタブを描画するGetTabRect
と、通常の描画方法と比較して、タブが著しく広く描画されます。画像用のスペースを作ろうとしていると思いましたが、タブ用に画像が定義されていません。GetTabRect
より広いサイズを返すのはなぜですか?
これが何か関係があるかどうかはわかりませんが、カスタム TabControl コンストラクターで所有者描画に設定する方法を次に示します。
c++ - サブクラス化されたCStaticコントロールでのWM_PAINTの処理
CStatic
クラスが基本クラスであるカスタムコントロールを作成しました。現在、WM_PAINT
イベントを使用して描画を処理しています。しかし、奇妙な振る舞いがあります。関数を使用してウィンドウを無効にした後でウィンドウを再度有効にすると、CWnd::EnableWindow
関数で記述したものを描画できなくなりOnPaint
ます。代わりに静的コントロールを描画します。
スタイルをオーバーライドDrawItem
して使用するこの標準的な方法があることに同意します。SS_OWNERDRAW
しかし、何が問題になっていWM_PAINT
ますか?
delphi - TPageControl DrawTab の問題
TPageControl Style を Flat Buttons ( tsFlatButtons
) に設定し、イベントを使用してタブのボタンの色を変更しますOnDrawTab
。
動作しますが、アクティブでないボタンには灰色 (btnFace 色) の境界線があります!
これを修正する方法はありますか?
c# - Winformsのタブコントロールタブヘッダー領域にコントロールを描画します
タブコントロールのタブヘッダー領域の左側にいくつかのコントロールを追加しようとしていますが、タブページ領域には影響しません(Internet Explorerなど)。所有者がコントロールを描画する必要があると思いますが、どこから始めればよいかわかりません。誰かが何か提案をすることができますか?
.net - 所有者図面管理システム - バックグラウンド
所有者の描画は、独自の描画メソッドをコーディングする必要があることを意味します。
ListView
ただし、テキストなしでアイテムの「システム」背景を描画するようにシステムに指示するにはどうすればよいですか? (青の)背景ではなく、テキストを手動で描画したいと思います。
タイルビューで使用ListView
すると、"My Text" だけが表示されます。
c++ - ownerdrawnチェックボックス
チェックボックスが入っているネイティブのwin32c++アプリケーションがあります。チェックボックスを置き換えて、2つの状態のON / OFFトグルボタンを作成したい(チェックボックスと同じように)。チェックボックスにスタイルを追加BS_OWNERDRAW
し、のウィンドウに描画しましたWM_DRAWITEM
。問題は、チェックボックスをクリックするとWM_COMMAND
(と同じように)メッセージが表示されますBS_OWNERDRAW
が、CHECKED状態が自動的に変更されないことです。この機能を実装する必要がありますか、それとも何かが足りませんか?
チェックボックスのクリックを処理するコード:
問題は、チェックボックスをクリックするたびにBM_GETCHECKがBST_UNCHECKEDを返すことです。BS_OWNERDRAWを削除すると、正常に動作します。
ボタン/チェックボックスを作成するコード:
c++ - 透明な画像のwin32c++所有者描画ボタン
win32アプリ(MFCなし)に所有者描画ボタンを実装しました。ボタンは通常の20x20ビットマップ(透明度のある丸いアイコン)です。問題は、ボタンが無地の背景に配置されており、ボタンが灰色の背景に見えることです(ビットマップが丸いため)。NULL_BRUSHを使用してWM_CTLCOLORBTNに応答しようとしましたが、うまくいきませんでした。ビットマップとicoファイルを使用してボタンを表示しようとしましたが、うまくいきません。この問題を解決する方法を知っている人はいますか?
これは私の問題です。設定アイコンは端が透明である必要があります(白/灰色ではありません)
c# - ビジュアルスタイルをオフにしてUI要素を描画するにはどうすればよいですか?
ツリービューの展開ボックス(「プラス/マイナス」)を描画する必要がある所有者描画コントロールがあります。ビジュアルスタイルをオンにすると、簡単です。適切なVisualStyleElementのレンダラーを作成するだけです。
ビジュアルスタイルがオフのときに同様の効果を達成することは可能ですか?コントロール全体を描画できるControlPaintクラスがあることは知っていますが、 TreeViewコントロールの一部だけを描画(およびサイズを取得)するにはどうすればよいですか?
delphi - 所有者が描画した無効なメニュー項目に別のテキストの色を使用するにはどうすればよいですか?
Delphi で MainMenu を色付けするためのこのコードがあります。OnDrawItem イベントではうまく機能しますが、何かが必要であり、どうすれば作成できるかわかりません。項目が無効になった場合 (有効 = False)、MainMenu 項目のフォントを clSilver にしたいと思います…</p>
c# - リストビュー ownerdraw モードのテキスト レンダリングに関する問題
ListView
基本コントロールが列内の値を揃える必要があるタブ文字を食べるため、描画された所有者を実装しようとしています。
MSDNの例をベースとして使用すると、近づくことができました。私がまだ持っている唯一の問題は、テキストが列に収まらないときに使用される省略記号のピリオドが、デフォルトのテキスト レンダリングよりもはるかに狭い間隔になっていることです。フォントが太字の場合、ピリオドが一緒になってアンダースコアになるという点。
以下のプログラムは、問題を示しています。4 つListView
の s があります。上部の 2 つは、デフォルトのレンダリングを使用して描画されます。下の 2 つは所有者が描いたもので、右側のペアは太字です。長さの理由から、問題を示すために必要のないものはすべて削除しました。これが、描画された所有者ListView
に列ヘッダーがない理由です。
拡大されたスクリーンショットを見ると、描画された所有者の省略記号の期間はListView
1 ピクセル離れています。デフォルトの描画では、2 ピクセルの間隔があります。太字がピリオドを 2 ピクセルに広げると、所有者が描いたピリオドが一緒になってアンダースコアのように見える固体の塊になります。
テキストのレンダリングには、他にも小さな違いがあります。しかし、ズームしなくてもすぐにわかるのは省略記号だけです。ただし、これらの違いにより、問題がより一般的な問題であると思われます。 おそらくGDI対GDI +レンダリング?ただし、それはアプリケーション レベルでしか変化しないと考えていました。 どうやらそうではなく、トグルApplication.SetCompatibleTextRenderingDefault()
しても何の影響もありませんでした。