問題タブ [aero]
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 - win32 SDK: 子ウィンドウのキャプション/ボーダーを透明にする方法
私の win32 アプリケーションでは、メイン ウィンドウ内に子ウィンドウを作成したいと考えています。CreateWindowEx を呼び出すときに、これらのスタイルを子ウィンドウに割り当てました。
取得した子ウィンドウには、キャプションとサイズ変更可能な境界線があります。ただし、キャプションには閉じるボタンがなく、子ウィンドウのキャプション/境界線は透明ではありません (Windows 7 で aero テーマを使用しています)。
これがスクリーンスナップです:
代替テキスト http://img2.pict.com/f7/c6/2c/3570867/0/e68d95e88eb7.png
キャプションに閉じるボタンを追加するには? キャプション/境界線を透明にするにはどうすればよいですか?
c# - WPF なしの拡張 Glass Frame での TextBox の描画
フォームの拡張ガラス フレームに TextBox を描画しようとしています。この手法については説明しませんが、よく知られています。聞いたことがない人のために例を示します: http://www.danielmoth.com/Blog/Vista-Glass-In-C.aspx
問題は、このガラス フレームに描画するのは複雑なことです。黒は 0 アルファ カラーと見なされるため、黒はすべて消えます。
この問題に対抗する方法は明らかにあります: 複雑な GDI+ シェイプの描画は、このアルファネスの影響を受けません。たとえば、次のコードを使用して、ガラスにラベルを描画できます (注:恐ろしい ClearType 問題を回避するためにGraphicsPath
代わりに使用されます)。DrawString
同様に、このようなアプローチを使用して、ガラス領域にコンテナーを作成できます。長方形の代わりに多角形を使用していることに注意してください。長方形を使用すると、その黒い部分がアルファと見なされます。
今私の問題は次のとおりです: TextBox を描画するにはどうすればよいですか? 多くのグーグル検索の後、次の解決策を思いつきました。
- TextBox の
OnPaint
メソッドをサブクラス化します。これは可能ですが、正しく動作させることはできませんでした。まだ方法がわからない魔法のようなものを描く必要があります。 - おそらく.
TextBox
_TextBoxBase
誰かが良い、有効で実用的な例を持っていて、これが良い全体的な解決策になると思うなら、教えてください。 - を使用し
BufferedPaintSetAlpha
ます。( http://msdn.microsoft.com/en-us/library/ms649805.aspx )。この方法の欠点は、テキスト ボックスの角が奇妙に見えることかもしれませんが、私はそれを受け入れることができます。Graphics オブジェクトからそのメソッドを適切に実装する方法を誰かが知っている場合は、教えてください。私は個人的にはしませんが、これはこれまでのところ最良の解決策のようです。正直なところ、素晴らしい C++ の記事を見つけましたが、変換するのが面倒です。http://weblogs.asp.net/kennykerr/archive/2007/01/23/controls-and-the-desktop-window-manager.aspx
注: BufferedPaint メソッドで成功した場合は、ガラスに描画可能なすべての一般的な Windows フォーム コントロールを備えた単純な DLL を作成することを誓います。
wpf - Aero ウィンドウのタイトルバーのテキストに適用される「背景」を複製する方法は?
Aero のすべてのウィンドウのテキストには、この種の白っぽい背景があります。ラベル領域に TextBlock がある、使用している GlassWindow に対してこの効果と同等のものを作成したいのですが、私は実際にはデザイナーではないので、これにアプローチする方法がわかりません。この背景効果を再現するにはどうすればよいですか?
.net - Windows Vista / 7(DWMを使用)でアプリケーションのグラフィック出力をリダイレクトする
状態やスクリーンショットなど、実行中のすべてのアプリケーションの情報を取得して、仮想空間(おそらく3D)で表示および操作するデスクトップマネージャーを作成したいと思います。これは、Windows自体の上にある別の抽象化レイヤーと見なすことができます。
Flip3DやLiveThumbnailsなどの多くのネイティブWindowsVista/ 7機能は、各ウィンドウのアクティビティをリアルタイムで表示できるため、たとえば、ビデオはタスクバーのサムネイルで再生され続けるため、DWMを使用すると、アプリケーションは出力を別の場所または特別なプロセスにリダイレクトできると思います。他のアプリケーションのグラフィカル出力を収集できます(おそらく子プロセスのみ)。Microsoftは、そうするための一連のパブリックAPIをリリースしましたか?そうでない場合、それは技術的に可能ですか?また、スコープをWPFを使用する.NETアプリケーションのみに制限すると簡単になりますか?
c# - Windows Media PlayerのようなAeroGlassボタン?
プログラムを作成していて、Windows MediaPlayerと同じようにAeroGlassのコントロールセットが欲しいのですが、これを見つけました:http: //blogs.msdn.com/b/tims/archive/2006/04/18/578637 .aspxですが、黒く描画されます。また、メディアプレーヤーのコントロールがガラスに組み込まれているコントロールを見つけましたが、正しくレンダリングしたくなく、プログラムのさまざまな部分が機能しなくなったのは良くありませんでした。コントロール、または少なくとも自分のボタンを追加できるようにAeroガラスを拡張する方法をいただければ幸いです。ありがとう :)
ところでC#のみ。:)
windows - CWnd に太枠を描画しない
WS_THICKFRAME スタイルを追加するアプリケーション ウィンドウがあり、WS_CAPTION スタイルを削除しました。ウィンドウが最大化されたら、WS_THICKFRAME を非表示にするが、Aero-Snap 機能は保持したいので、WS_NCCALCSIZE のハンドラーを変更して、ウィンドウの境界線のサイズに関して膨張した四角形を返します。
つまり、WS_NCCLIENTSIZE ハンドラー コードの重要な部分は次のようになります。
このコードは、WS_THICKFRAME を事実上非表示にします。
唯一の問題は、ウィンドウがフォーカスを失うか、(最大化されているときに) フォーカスを取り戻すと、WS_THICKFRAME が境界内に描画されることです。ウィンドウのフォーカスが設定/設定解除されたときに、膨張した四角形を元に戻すか、少なくともウィンドウサイズを再調整して WS_THICKFRAME を再び非表示にすることができるメッセージはありますか?
c# - タスクバーのコンテキスト メニューを win7 アプリケーションに追加する
Windows 7 アプリケーションへのコンテキスト メニュー (編集: ジャンプリスト) の追加に関するドキュメントはどこにありますか? ご存知のように、タスクバーのアプリケーション アイコンを右クリックします。.NET を使用してそれを行うことはできますか? または、ネイティブ コードを使用する必要がありますか?
ありがとうございました!
vb.net - VB.NET - リボンに黒い領域が表示される
vb.net プログラムについて助けが必要です。DotNetBarを使用してメイン フォームの上部にリボン バーを追加しましたが、デフォルトの青色ではなく黒い四角形の領域が表示されるという問題があります。これは、Windows 7 Aero を使用していて、最大化されていない場合にのみ発生します。
誰にも提案はありますか?
.net - WPF で DrawThemeTextEx を使用する方法
Aero Glass にテキストを表示するアプリケーションに取り組んでいます。読みやすくするために OuterGlowBitmapEffect を使用しましたが、ここでも説明されているように、.NET 4 ではこれができなくなり、Glass でも DropShadowEffect は機能しません。
解決策を探しているときに、DWMApi のネイティブ DrawThemeTextEx に出会いましたが、見つかったすべての例は WinForms 用であり、WPF 用ではありませんでした。
では、これを WPF でどのように使用できますか?
ありがとう
button - 非クライアント領域を拡張せずに、Aero テーマのキャプション バーにカスタム ボタンを描画するにはどうすればよいですか?
Vista または Win7 で Aero テーマを使用しているときに、ウィンドウのキャプション バーにカスタム ボタンを描画する方法を見つけようとしています。元のコードを変更せずに、これをさまざまなアプリケーションに適用する必要があるため、これはフック プロシージャになります。元のコードを変更できないため、DwmExtendFrameIntoClientArea を使用できません。
これを実行できるアプリを見たことがあるので、これを実行できるか、少なくともうまく偽造できると確信しています。この他のアプリの実行中にさまざまなウィンドウを詳しく調べましたが、ウィンドウ スタイルを変更したり、フレームをクライアント領域に拡張したりしているとは思いません。
テストとして、WM_NCPAINT メッセージを使用して、キャプション バーに何かを描画しようとしました。Aero テーマがアクティブな場合、ペイントしたものは何も表示されません。ウィンドウだけでなく画面全体の DC を取得した場合、キャプション バーに "ペイント" できますが、もちろん、実際には画面にペイントされています。そのアプローチにはあらゆる種類の問題があるため、うまくいきません。誰かが良いアイデアや良いヒントを持っていれば、助けていただければ幸いです!