問題タブ [visual-styles]
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.
c++ - C ++ / Win32:XPビジュアルスタイル-コントロールが表示されていませんか?
さて、私はC++とWindowsAPIにかなり慣れていないので、小さなアプリケーションを書いているだけです。XP、Vista、Windows 7の両方で視覚的なスタイルをアプリケーションで利用したかったので、コードの先頭に次の行を追加しました。
それは私のWindows7マシンとVistaマシンでも完全に機能しているように見えました。しかし、XPでアプリケーションを試したところ、アプリケーションはコントロール(ボタン、ラベルなど)をロードせず、メッセージボックスも表示されませんでした。
この画像は、私が説明しようとしていることを示すためにまとめた小さなテストアプリケーションを示しています:http://img704.imageshack.us/img704/2250/myapp.png
このテストアプリケーションでは、特に凝ったコードや複雑なコードは使用していません。事実上、MSDNライブラリ( http://msdn.microsoft.com/en-us/library/ff381409.aspx )から最も基本的なサンプルコードを取得し、WM_CREATEメッセージにセクションを追加してボタンを作成しました。
しかし、何が起こっているのか、なぜそれが機能しないのか理解できません。アイデアはありますか?よろしくお願いします。
(ちなみに、マニフェストセクションを上から削除すると、アプリケーションはXPで動作しますが、明らかに視覚的なスタイルはありません。また、アプリがWindows7マシンでVisualC ++2010Expressを使用して構築されていることにも言及する必要があります。違い?)
c# - 表示スタイルに依存しない描画
C# の winforms を使用して、本物そっくりのカスタム コントロールを作成したいと考えています。
実際のものControlPaintのようVisualStyleRendererに見えるコントロールを描画するために使用できるクラスがたくさんあります。ButtonRendererCheckBoxRendererComboBoxRendererGroupBoxRendererProgressBarRendererRadioButtonRendererScrollBarRendererTabRendererTextBoxRendererTextRendererToolStripProfessionalRendererToolStripRendererToolStripSystemRendererTrackBarRenderer
ビジュアル スタイルを検討するときに発生する問題: ビジュアル スタイルに依存しないようにしたい。意味: ユーザーがビジュアル スタイルを許可するかどうかは気にしません。それを機能させたいのです。ユーザーがビジュアル スタイルを有効にしている場合は、ビジュアル スタイルを使用して描画します。それ以外の場合は、ビジュアル スタイルなしで描画します。
MSDN のドキュメントによると、ビジュアル スタイルに依存しない唯一のクラスはButtonRenderer、、、、CheckBoxRendererです。つまり、他のすべてのケースでは、視覚スタイルが有効になっているかどうかを自分で確認し、別のコードを使用してパーツを描画する必要があります。GroupBoxRendererRadioButtonRenderer
自分でタブ コントロール パーツを描画したいとします。TabRendererクラスにはそのために必要なすべての機能がありますが、ユーザーが視覚スタイルを有効にした場合にのみ機能します。それ以外の場合はControlPaint、クラスを使用して描画する必要がありますが、まったく異なるモデルを使用し、ControlPaint.DrawTab()メソッドなどはありません。実際のタブのように見えるように、描画する必要がある四角形の種類を把握する必要があります。それは迷惑です。
タブ コントロールを含む組み込みコントロールには、視覚スタイルの有無にかかわらず自身を描画するこの機能が既に備わっています。Microsoft がカスタム コントロールの作成者にこの機能を公開しないのはなぜですか? カスタム コントロールの作成者が苦労するのはなぜですか?
c++ - Win32 APIアプリケーションでコントロールテーマを変更するにはどうすればよいですか?
Win32 APIでボタンを作成すると、デフォルトの制御テーマはWindows95/98ボタンのようになります。過去にMicrosoftフォーラムがXPスタイルを取得する方法を教えてくれたことを覚えていますが、これを行う方法を思い出せません。Win32アプリケーションのコントロールテーマをプログラムまたは手動で変更する方法はありますか?ありがとう。
c++ - マニフェストを使用すると、ウィンドウが部分的に空白のままになる
私は、ほとんどの開発を Visual C++ 6.0 で行ったアプリを Windows のテーマに準拠させようとしているところです。つまり、その視覚スタイルの側面を正確に表現しようとしています。問題のアプリケーションは、MBCS 文字セットを使用する MFC アプリケーションです。そもそもテーマを有効にするにはInitCommonControlsEx(...);、Common Controls 6.0 の適切なマニフェストと組み合わせたトリックが必要でした。これまでのところ特別なことは何もありません。
すべてが完了すると、描画の不具合が表示されているように見えるウィンドウがたくさんあります-ウィンドウの残りの部分にあるように、以前は灰色だった背景に白い長方形が表示されますが、邪魔にはなりません。
最大のトラブルメーカーはCDialog、(古風な) 'did you know...' ヒント ダイアログを実装する子孫にあります。マニフェストが配置された瞬間に、ボタン、チェックボックス、装飾フレーム以外の描画を拒否します。ただし、マニフェスト OUT を取得すると、すべて正常に動作します。
私はすでにコードをステップ実行しました(アイコンと「知っていましたか」テキストを描画し、すべての関数は適切で成功した値を返します。また、カスタム描画されたビット全体を削除しようとしました (とメッセージOnPaintのマッピングをコメントアウトしました) が、それでも、そのことについては何も表示または動作が異なりませんでした。WM_PAINTWM_CTLCOLOR
「次のヒント」ボタンをクリックすると、リスト内の次のヒントが適切に描画されます。ただし、電球のアイコンが付いたカスタム描画ヘッダーは欠落したままです。
コードは、私が見つけることができる特別なことは何もしていません。私は途方に暮れています。ダイアログの定義が最も役立つと思うので、それを含めますが、問題がどこに隠れているかについて人々がアイデアを持っている場合は、他のものを投稿できます.
これをテストしているマシンは、VS2010 を実行している W7 64 ビット マシンです。問題のアプリケーション自体は 32 ビットです。
編集:
新しい日は新しい洞察を提供します。どういうわけか、問題はWM_CTLCOLORメッセージの処理にあります。を返すように設定するとNULL_BRUSH、最終的に描画されていることがわかりました(もちろん、最初の描画後に別のものの上にぼやけています)。さらに突き詰めるとnCtlColor == CTLCOLOR_STATIC、 を返すNULL_BRUSHと が表示されるようです。しかし、何もない瞬間にWHITE_BRUSH再び描画されます。
元のコード:
問題が解決しました!太字の行は、必須のコメントを含め、問題を修正するために変更したものです。:)
c# - .NET アプリケーションのカスタム テーマをどのように設定しますか?
タイトルが示すように、Photoshop CS4 や Autodesk Maya 2011 のようなプログラムのスタイルをどのように設定するかを考えています。これらのプログラムは、UI が完全にカスタムに見えるようにスタイル設定されています。今は C# を使ってプログラミングしていますが、C++ や WinAPI の方が簡単であれば簡単に切り替えることができます。C# でコントロールのスタイリングについて複数の Google 検索を実行しましたが、正確な結果はないようです。
助けてくれてありがとう、-トーマス
delphi - Edit1.Font.Charsetをテーマ(ビジュアルスタイル)で機能させる方法
TEdit「TestEdit」を備えたテーマのない非UnicodeVCLアプリケーションがあり、TestEdit.Font.CharsetをRUSSIAN_CHARSETに設定した場合、TestEditはキリル文字を表示します。ただし、テーマを使用するようにアプリを切り替えると、これは機能しなくなります。これを確認するには、次を試してください。
- 新しいVCLアプリを作成します。
- 保存せずにデフォルトのUnit1を閉じます。
- プロジェクトのソースコード(Project1.pas)をこの投稿の下部にあるコードに置き換え、CharsetTest.pasとして保存します。
- プロジェクトオプションでランタイムテーマのチェックを外します。
- プログラムを実行し、ラジオボタンをクリックして、編集ボックスのフォントを確認します。
- 次に、プロジェクトオプションでランタイムテーマを確認するか、XPManをuses句に追加します。
- 手順5を繰り返します。
私の質問は、テーマが設定されている場合でも、アプリが文字セットを尊重するようにする方法はありますか?(Unicodeに切り替えずに。)
c++ - マニフェストなしでビジュアル スタイルを有効にする方法
ドキュメントによると:
「アプリケーションで ComCtl32.dll バージョン 6 を使用する場合は、アプリケーション マニフェストまたはコンパイラ ディレクティブを追加して、使用可能な場合はバージョン 6 を使用するように指定する必要があります。」
上記の論理 OR に注目してください。では、この謎のコンパイラ ディレクティブとは何なのでしょうか?
1 つの .cpp ファイルに完全に含まれているネイティブの Win32 C++ アプリケーションがあります。リソース ファイルやマニフェスト ファイルなどはありません。そのままにしておきたいのですが、ビジュアル スタイルも使用したいと考えています。
c# - C#を使用してWindowsクラシックテーマのビジュアルスタイルをWin形式で適用する方法
WindowsアプリケーションにVisualStyleRendererを使用しています。これは、Windows XPテーマでは完全に機能しますが、WindowsClassicテーマでは機能しません。アプリケーションのテーマをサポートできるようにするにはどうすればよいか、誰かに提案してもらえますか。
アップデート:
わかりやすく説明させていただきます。リストビューがあり、リストアイテムに、VisualStyleRendererクラスを使用してボタンを描画し、グラデーションカラーを使用してそのボタン領域をペイントしています。これはWindowsXPテーマで機能しますが、テーマをWindowsクラシックに変更している間、VisualStyleRendererクラスを使用して描画したボタンwffectが表示されません。
どんな助けでもありがたいです
前もって感謝します。
winforms - カスタムビジュアルスタイル(.msstyle)を単一のWinformsアプリに適用します
システム全体のテーマを変更せずに、カスタムビジュアルスタイル(.msstyle)をWindowsフォームアプリケーションに適用する方法はありますか?基本的に、コントロールパネルで何が設定されているかに関係なく、アプリケーションで同じテーマを維持する必要があります。これが良い考えだと思うかどうか教えてはいけません。一連のネイティブAPI呼び出しのように、プロプライエタリライブラリを使用せずにこれを行う方法があるかどうか疑問に思っています。ありがとう!
c - C + Win API でのプログラミング: Windows 7 でコントロールを探すには?
私は厳密に C と WinAPI でプログラミングしており、C++ や C# は使用していません。私は初心者で、コントロールなどを描画することを学んでいます。問題は、Windows やコマンド ボタンなどの他のコントロールを作成すると、Windows ネイティブの外観になることです。これを見てください:

しかし、Windows 7 では、コマンド ボタンは次のようになります。

さて、プログラムのコマンド ボタンをそのようにするにはどうすればよいでしょうか。それは可能ですか?参考までに、このチュートリアルに従っています: http://zetcode.com/gui/winapi/
ありがとう。