問題タブ [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 投票する
1 に答える
1098 参照

.net - 所有者が描画したタブコントロールのタブが広い

タブコントロールをカスタム描画しようとしています。によって返される寸法を使用してタブを描画するGetTabRectと、通常の描画方法と比較して、タブが著しく広く描画されます。画像用のスペースを作ろうとしていると思いましたが、タブ用に画像が定義されていません。GetTabRectより広いサイズを返すのはなぜですか?

これが何か関係があるかどうかはわかりませんが、カスタム TabControl コンストラクターで所有者描画に設定する方法を次に示します。

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

c++ - サブクラス化されたCStaticコントロールでのWM_PAINTの処理

CStaticクラスが基本クラスであるカスタムコントロールを作成しました。現在、WM_PAINTイベントを使用して描画を処理しています。しかし、奇妙な振る舞いがあります。関数を使用してウィンドウを無効にした後でウィンドウを再度有効にすると、CWnd::EnableWindow関数で記述したものを描画できなくなりOnPaintます。代わりに静的コントロールを描画します。

スタイルをオーバーライドDrawItemして使用するこの標準的な方法があることに同意します。SS_OWNERDRAWしかし、何が問題になっていWM_PAINTますか?

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

delphi - TPageControl DrawTab の問題

TPageControl Style を Flat Buttons ( tsFlatButtons) に設定し、イベントを使用してタブのボタンの色を変更しますOnDrawTab

動作しますが、アクティブでないボタンには灰色 (btnFace 色) の境界線があります! ここに画像の説明を入力

これを修正する方法はありますか?

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

c# - Winformsのタブコントロールタブヘッダー領域にコントロールを描画します

タブコントロールのタブヘッダー領域の左側にいくつかのコントロールを追加しようとしていますが、タブページ領域には影響しません(Internet Explorerなど)。所有者がコントロールを描画する必要があると思いますが、どこから始めればよいかわかりません。誰かが何か提案をすることができますか?

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

.net - 所有者図面管理システム - バックグラウンド

所有者の描画は、独自の描画メソッドをコーディングする必要があることを意味します。

ListViewただし、テキストなしでアイテムの「システム」背景を描画するようにシステムに指示するにはどうすればよいですか? (青の)背景ではなく、テキストを手動で描画したいと思います。

タイルビューで使用ListViewすると、"My Text" だけが表示されます。

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

c++ - ownerdrawnチェックボックス

チェックボックスが入っているネイティブのwin32c++アプリケーションがあります。チェックボックスを置き換えて、2つの状態のON / OFFトグルボタンを作成したい(チェックボックスと同じように)。チェックボックスにスタイルを追加BS_OWNERDRAWし、のウィンドウに描画しましたWM_DRAWITEM。問題は、チェックボックスをクリックするとWM_COMMAND(と同じように)メッセージが表示されますBS_OWNERDRAWが、CHECKED状態が自動的に変更されないことです。この機能を実装する必要がありますか、それとも何かが足りませんか?

チェックボックスのクリックを処理するコード:

問題は、チェックボックスをクリックするたびにBM_GETCHECKがBST_UNCHECKEDを返すことです。BS_OWNERDRAWを削除すると、正常に動作します。

ボタン/チェックボックスを作成するコード:

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

c++ - 透明な画像のwin32c++所有者描画ボタン

win32アプリ(MFCなし)に所有者描画ボタンを実装しました。ボタンは通常の20x20ビットマップ(透明度のある丸いアイコン)です。問題は、ボタンが無地の背景に配置されており、ボタンが灰色の背景に見えることです(ビットマップが丸いため)。NULL_BRUSHを使用してWM_CTLCOLORBTNに応答しようとしましたが、うまくいきませんでした。ビットマップとicoファイルを使用してボタンを表示しようとしましたが、うまくいきません。この問題を解決する方法を知っている人はいますか?

これは私の問題です。設定アイコンは端が透明である必要があります(白/灰色ではありません)

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

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

c# - ビジュアルスタイルをオフにしてUI要素を描画するにはどうすればよいですか?

ツリービューの展開ボックス(「プラス/マイナス」)を描画する必要がある所有者描画コントロールがあります。ビジュアルスタイルをオンにすると、簡単です。適切なVisualStyleElementのレンダラーを作成するだけです。

ビジュアルスタイルがオフのときに同様の効果を達成することは可能ですか?コントロール全体を描画できるControlPaintクラスがあることは知っていますが、 TreeViewコントロールの一部だけを描画(およびサイズを取得)するにはどうすればよいですか?

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

delphi - 所有者が描画した無効なメニュー項目に別のテキストの色を使用するにはどうすればよいですか?

Delphi で MainMenu を色付けするためのこのコードがあります。OnDrawItem イベントではうまく機能しますが、何かが必要であり、どうすれば作成できるかわかりません。項目が無効になった場合 (有効 = False)、MainMenu 項目のフォントを clSilver にしたいと思います…</p>

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

c# - リストビュー ownerdraw モードのテキスト レンダリングに関する問題

ListView基本コントロールが列内の値を揃える必要があるタブ文字を食べるため、描画された所有者を実装しようとしています。

MSDNの例をベースとして使用すると、近づくことができました。私がまだ持っている唯一の問題は、テキストが列に収まらないときに使用される省略記号のピリオドが、デフォルトのテキスト レンダリングよりもはるかに狭い間隔になっていることです。フォントが太字の場合、ピリオドが一緒になってアンダースコアになるという点。

以下のプログラムは、問題を示しています。4 つListViewの s があります。上部の 2 つは、デフォルトのレンダリングを使用して描画されます。下の 2 つは所有者が描いたもので、右側のペアは太字です。長さの理由から、問題を示すために必要のないものはすべて削除しました。これが、描画された所有者ListViewに列ヘッダーがない理由です。

拡大されたスクリーンショットを見ると、描画された所有者の省略記号の期間はListView1 ピクセル離れています。デフォルトの描画では、2 ピクセルの間隔があります。太字がピリオドを 2 ピクセルに広げると、所有者が描いたピリオドが一緒になってアンダースコアのように見える固体の塊になります。

テキストのレンダリングには、他にも小さな違いがあります。しかし、ズームしなくてもすぐにわかるのは省略記号だけです。ただし、これらの違いにより、問題がより一般的な問題であると思われます。 おそらくGDI対GDI +レンダリング?ただし、それはアプリケーション レベルでしか変化しないと考えていました。 どうやらそうではなく、トグルApplication.SetCompatibleTextRenderingDefault()しても何の影響もありませんでした。