38

今、アプリケーションのタイトル バーをカスタマイズしています。私の目的は、タイトル バーにボタンを 1 つ追加することです。以前の質問 で、非クライアント領域をカスタマイズする方法について人々からアドバイスを受けました。それは、1つの小さなことを除いて完全に機能します-光っています! 非クライアント領域でグローを描くことはできますが、窓の外に広がるようにすることはできません。このサブジェクトに関するリソースも見つかりません。

このサンプルを調べて、クライアント以外の描画機能を調査するための独自のテスト アプリを作成しました。私のアプリのウィンドウのスクリーンショット:

私のアプリのウィンドウ

これで、borderframe によってクリップされたときに、システム ボタンがウィンドウの外で光るのがわかります。

たとえば、Skype のウィンドウには、タイトル バーに 4 つのカスタム ボタンがあり、ウィンドウ フレームから「光る」ことができます。

スカイプの窓口

窓の外にボタンの光を描く方法を見つけるようにアドバイスしてもらえますか?
前もって感謝します!

[編集]
皆さん、回答ありがとうございます!

4

3 に答える 3

13

Skypeはそれをだまし、ウィンドウの上部に小さなスライバーがあります。彼らがそれを描くことができる場所。

SpyXXへのProcessExplorerでそれを見ることができます:

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

も参照してください

MSDN:DWMを使用したカスタムウィンドウフレーム

于 2011-04-21T03:44:26.600 に答える
5

NC 領域を超えて描画することは不可能だと思います。DWM Aero 効果と完全に一致するように UI 全体を描画しているとは思えません。

これがどのように見えるかを考えると、CustomBorderForm のヘルプまたは復元ボタンを使用して何らかのトリックを行ったのではないかと思います。これにより、DWM ぼかしハイライト効果が「無料で」得られます。

これに最も関連する記事は次のとおりです。http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

フォローアップ - このカスタム クロム スレッドには、同じ手法へのポインタが他にもあると思います (ただし、目的は異なります): WinForms アプリのカスタム タイトルバー/クロム

于 2011-04-14T19:39:07.750 に答える
3

私の知る限り、ウィンドウの境界線の外側の領域は単にあなたに属していないため、これは不可能です。

Skype のスクリーンショットは、Aero Glass フレームからではなく、目に見える境界線を少し超えて拡張されている可能性が高いカスタム描画フレームからのものです。よく見ると違いがわかります。

于 2011-04-21T02:57:41.007 に答える