問題タブ [nonclient-area]
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# - ウィンドウのスタイルを変更しますか?
アプリを Chrome ウィンドウのように見せるにはどうすればよいですか? タイトル テキストがなく、非常にスリムな境界線が表示されます。または、境界線のない (またはパディングのような) Spotify のように。
winapi - WM_NCHITTESTはマウスカーソルを変更しません
カスタムNCHITTESTとNCCALCSIZEを実装するレイヤードウィンドウ(WS_EX_LAYERED)があり、ウィンドウのクライアントrectをウィンドウrectと同じにします。私のウィンドウのサイズとペイントは正しくあります。カーソルがウィンドウの下端近くにあるときにWM_NCHITTESTからHTBOTTOMを返すと、ウィンドウの下部から垂直方向のサイズ変更タイプのアクションが発生します。ただし、垂直サイズ変更カーソルが表示されません。WM_SETCURSORを実装して、ウィンドウの端に対するポインターの位置をテストせずに、これを修正する方法はありますか?
これが私のコードの抜粋です:
c# - Aero の非クライアント領域サイズを正しく決定する方法は?
COMPILED アプリケーションに対して Aero がアクティブ化されているときに、VBNET または C# コードを使用して非クライアント領域のサイズを正しく決定する方法は? (はい、この問題は、IDE からアプリを起動するときではなく、コンパイルされたアプリケーションを実行するときにのみ発生します)
フォームのサイズを変更したり、フォームの高さ/幅に関連する操作を行ったりすると、期待した結果が得られません。
たとえば、これは 2 つの形式の単純なドッキングのコードの一部です。
VB-NET:
C#:
例として、私のプログラムを示します。
上記のコードは、Aero がアクティブ化されていない場合に完全に実行されます。
...しかし、Aero が有効になっている場合は、次のようになります。
右側のフォームが左側のフォームの非クライアント境界線の下にあることに注意してください。
...または、左のフォームが右のフォームの非クライアント境界線の下にある別の画像を次に示します。
私の質問は、これを解決する方法はどれですか?
アップデート:
フレーム ソリューションの拡張が機能していません。
フォーム1:
フォーム2:
結果:
また、覚えておきたい のは、この問題は、IDE からアプリを起動するときではなく、コンパイルされたアプリケーションを実行するときにのみ発生することです。
**
アップデート:
**
GetWindowRect ソリューションをテストし、常に 0 を返しましたが、うまくいきませんでした。何か間違ったことをしているのかもしれません:
**
アップデート:
**
GetWindowRect をもう一度試してみます。今回はコードは正しく記述されていますが、問題は解決しません。
注意: この問題は、IDE からアプリを起動するときではなく、win7/Vista でコンパイルされたアプリケーションを実行するときにのみ発生します。
.net - NonClient の上部境界線のサイズを取得するには?
セカンダリ フォームを他のフォームの右端に揃える必要があります。
AERO を有効にしてCOMPILEDアプリケーションをコンパイルして実行すると(IDE から実行する場合ではない)、次のようになります。
ここでGJKHのすばらしい回答に感謝します: Aero の非クライアント領域サイズを正しく決定する方法は?
...これで、セカンダリ フォームをメイン フォームの右側に揃えることができますが、セカンダリ フォームはまだ上から少しピクセル分ずれています。
これは私が使用しているコードです:
c++ - 非クライアント領域でのプッシュ ボタンのイベントの処理方法
編集:次のコードを使用して、ウィンドウの非クライアント領域 (タイトル バー) にプッシュ ボタンを描画しました。だから私の質問は:このボタンからマウスクリックイベントを処理することは可能ですか?
c++ - WM_NCPAINT WinEvent を処理するときにエアロ グラスを保持する方法
ウィンドウの非クライアント領域にプッシュボタンを描画するために WM_NCPAINT WinEvent を処理しています。しかし、次の画像でわかるように、エアロ ガラスの境界線が消えており、私のウィンドウには境界線がありません。だから私はこの答えを見つけました: WM_NCPAINT を処理すると、Vista/Aero で DWM ガラスのレンダリングが「中断」し、そのページで提案されているソリューションをプロジェクトに適用しようとしましたが、結果はありませんでした。私が間違っていることは何ですか?
私のウィンドウのスクリーンショット:
私が追加した.proファイルで:
そしてここに私のコード:
c# - フォームのサイズが変更された後、フォームをビットマップにキャプチャする
C# での作業私は、Control
またはForm
ビットマップをキャプチャする必要があるプロジェクトを持っています。Control
コンストラクターでパラメーターを受け取り、次のコード (この例では単純化されています) を実行してControl
.
キャプチャする必要があるコントロールごとにこのクラスのインスタンスが作成され、ビットマップが使用され (この場合は画面に描画されます)、不要になったオブジェクトは破棄されます。これはうまく機能し、以下に示すように、指定されたControl
orのビットマップを提供しForm
ます。後者の場合は非クライアント領域を含みます。
http://i.imgur.com/ZizXjNX.png
ただし、Form
もう一度キャプチャしようとすると、問題が発生します。再度キャプチャする前にサイズを変更した場合Form
、2 回目のキャプチャでは、非クライアント領域が正しくないものとして表示されます。
以下は、これを説明するための画像です。左側はフォームが画面上でどのように見えるか (正しい) であり、右側は上記のコードがそれをどのようにキャプチャするか (正しくない) です。
http://i.imgur.com/y46kFDj.png
私は自分の検索から何も思いつかなかったので、誰かが私が間違っている/していないことを指摘できるかどうか疑問に思いましたか?
c# - クライアント領域にタイトルバーを含める
アドバイスを求めています...フォームのクライアント領域を拡張して、タイトル バーとウィンドウの境界線を含めようとしています。ボタンを追加して非クライアント領域にペイントできるようにしたい。この記事を読みまし たが、これは C++ で書かれており、C# を使用しています (Visual Basic も動作します)。それを読んだ後、私はこのコードを思いつきました:
これはウィンドウを大きくするだけで、非クライアント領域には何もしません。私は一日中グーグルで検索してきましたが、これ以上のものに出くわしていません。これはしばらく私を悩ませてきたので、誰かアイデアがあれば、返信を残してください.
また、初投稿なので何か間違っていたら教えてください。