問題タブ [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.
winapi - タブ ページとしてのダイアログ ボックスは、それが属するタブ コントロールとは異なる背景色を持っています
タブ コントロールを使用してダイアログを作成しています。各タブには異なるコントロール セットが表示されるはずなので、ページのように動作するようにリソース エディターで子ダイアログ ボックスを作成しました。
これを行うには、この投稿の手順を使用しました。
リソース エディターで、境界線のないダイアログ ボックスを作成し、スタイルを に設定しChild
、システム メニューを削除し、フラグControl
とControl Parent
を に設定しましたtrue
。
私の子ダイアログボックスの手順ではWM_INITDIALOG
、追加EnableThemeDialgTexture(handleOfmyDialog, ETDT_ENABLETAB);
して返すことで処理しましたTRUE
。いいえWM_ERASEBKGND
、WM_PAINT
またはWM_CTLCOLORDLG
オーバーライドされています。
CreateDialog
タブコントロールを含むメインダイアログボックスで、関数を使用して「子ダイアログ」を作成し、MoveWindow
それらを適切に配置するために使用しました。
またはのEndDialog
「子ダイアログ」を破棄するために使用しませんでしたが、自動的に破棄されると思います。IDCANCEL
WM_CLOSE
これをすべて行うために、Windows 8.1 で Visual Studio 2013 を使用しました。
Windows 7 と Windows 8.1 では問題ないように見えますが、タブ コントロールの背景色がダイアログ ボックスのデフォルトの背景色と似ているため、私の目がいたずらをしているのかもしれません。この問題は、次の図に示すように、Windows XP で最もよく見られます。
「子ダイアログ」(およびチェックボックス/トラックバー/ラジオボタン/静的コントロールなどの子コントロール)の背景色を透明にする(タブコントロールの背景色と一致させるにはどうすればよいですか?)
ありがとうございました。
c++ - ウィンドウのサイズを変更すると、コモン コントロールが正しく描画されない
前書き:
子ダイアログ ボックスをページとして持つタブ コントロールを作成しています。
コメントで有効Visual Styles
にしました。#pragma
私も電話InitCommonControlsEx
し#pragma comment( lib, "comctl32.lib" )
ました。
最初に、ウィンドウが読み込まれると、ダイアログとその共通コントロールには適切な背景が表示されます。以下の画像を参照してください。
サイズ変更中、物事はそれほど一貫していません->背景が目に見えて不一致になり始めます。以下にスクリーンショットを提供します。
あなたはそれをはっきりと見ることができ、不適切な背景checkbox
を持っていますが、 (子コントロールとして機能するように作成された)適切な背景を持っているように私には思えます。static control
dialog box
2014 年 11 月 24 日に編集:
コントロールを囲んだ後group boxes
、描画の問題はないようです。私のモニターは古い CRT (Samsung SyncMaster 753s) で、視力が悪いのですが、すべてが適切に描画されているようです。サイズ変更時にウィンドウがまだひどくちらつきますが、私はそれを修正するために全力を尽くしました。
質問:
どうすればこれを修正できますか?
これを解決するための私の努力:
まだ何も見つけていませんが、この質問を入力している間、まだゴーグルしています...
関連情報:
問題を説明するデモを作成する手順は次のとおりです。
1.) に空のC++
プロジェクトを作成しVisual Studio
ます。
2.) ヘッダー ファイルを追加し、名前を付けてpomocne_funkcije.h
、以下をコピーして貼り付けます。
3.) リソース エディターでダイアログ ボックスを作成し、チェックボックスの静的コントロールを追加します。
ダイアログ ボックスに次のように設定します。
- ボーダー : なし
- コントロール : 真
- コントロールの親: true
- スタイル : 子供
- システム メニュー : false
4.) のコードは次のmain.cpp
とおりです。
と の使用に取り組んでいVisual Studio 2008
ます。Windows XP
C++
WinAPI
delphi - クライアントのビジュアル スタイルが無効になっていると TSaveDialog が失敗する
TSaveDialog
Delphi XE6 でa を使用しようとしています:
この呼び出しは、ダイアログを表示せずにすぐにfalseを返します。シェルの Save Dialog COM オブジェクトを作成する行為までたどり着きました。
への呼び出しCoCreateInstance
が失敗しています。問題を再現するための最小限のコードを作成しました。
EOleSysError例外をスローします。
0x80040111: ClassFactory は要求されたクラスを提供できません, ClassID: {C0B4E2F3-BA21-4773-8DBA-335EC946EB8B}
私のアプリケーションはバージョン 6 の Common Controls ライブラリ (6.0.7601.18837) を使用していますが、ユーザーがアプリケーションのビジュアル スタイルを無効にしている場合にのみ発生することに気付きました。
共通コントロール ライブラリのバージョン 6 をまだ使用していますが、それだけでIsAppThemed
false が返されます。
注: 多くの人が次のように誤って信じていることは知っています。
- Visual Styles API は、バージョン 6 の Comctrl32.dll がロードされている場合にのみ機能します
- Comctrl32.dll のバージョン 6 が読み込まれている場合、Visual Styles API は機能します。
- ComCtrl v6 を使用していない場合は、Visual Styles が無効になっていることを意味します。
- 古い共通コントロール ライブラリを使用している場合、ビジュアル スタイルは無効になります。
総当りの解決策は、グローバルなUseLatestCommonDialogsを false に設定することです。
ただし、アプリケーションで視覚スタイルを無効にしているユーザーにのみ適用されるため、これはかなり悪いことです。
- ダイアログは、視覚スタイルのない OS (Windows Server 2008 R2 など) でも引き続き機能します。
- ダイアログは、ビジュアル スタイルをオフにしても動作し続けます (例: ビジュアル スタイルがオフの Windows 7)。
これはIsAppThemed
、 が false の場合も false を返すため、単純に を使用できないことを意味しIsThemeActive
ます。
私が求めているのは、Disble Visual Styles compat フラグのステータスを確認する方法です。
私が本当に求めているのはTSaveDialog
、Delphi で正しく動作させる方法です (compat フラグを読むことが解決策の一部であることを意味するものではありません)。
.net - vb.net のタイトル バーが白くなるのはなぜですか
何らかの理由で、Windows アプリケーションを設計しているときに、フォームのアウトライン/タイトル バーの色が青色ですが、アプリケーションを実行すると白色になります。なぜこれを行うのですか?また、すべての Windows アプリケーションで使用される通常の色を表示するにはどうすればよいですか? アプリケーションが安っぽく見えるので、白は好きではありません。Windows 10 Pro で Visual Studio 2015 Community を使用しています。デザイナーと実行中のフォームの画像が添付されています。
私は本当にこれでいくつかの助けをいただければ幸いです, ありがとう.