問題タブ [layered-windows]

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.

0 投票する
1 に答える
386 参照

c++ - 透明なウィンドウに書かれたテキストの周りの透明なカラーキーの色付きの境界線

ウィンドウを透明にするために使用するカラーキーを使用して、透明なレイヤードウィンドウを作成しました。これまでのところ、すべて正常に動作します。その上にテキストを書く-GDI+を使用して-も機能します...

私が遭遇する問題は、テキストの文字の周りにカラーキーカラーの細い境界線があることです...

WM_PAINTで行うことは次のとおりです。

私が意味するもののスクリーンショット:http: //imageshack.us/photo/my-images/709/cutp.jpg/

誰もがこれを回避する方法を知っていますか?

0 投票する
1 に答える
1802 参照

delphi - 子層のアルファ透過ウィンドウを作成するには?

透明な子ウィンドウを作成しようとしています。

それはほとんど機能します: Form2 は Form1 内の素敵な透明なウィンドウになります。しかし、Form2 は Form1 と一緒に動かないようです。Form1 を移動すると Form2-Window が移動しますが、画面上では移動したときに表示されます。Form1が移動すると、Form2をクリックできず、クリックが通過するため、ウィンドウが移動したことがわかります。

質問は、これらの機能なしで子を透明なウィンドウにする方法ですか? (親と一緒に移動する通常のウィンドウ)

0 投票する
1 に答える
1846 参照

c++ - レイヤードウィンドウでのC++GDI+描画イメージが機能しない

そのため、レイヤードウィンドウに画像を描画することについて、SOに関する多くのコードサンプル、ガイド、および回答を見つけました。純粋なHBITMAPSとWICライブラリを使用して描画しようとしましたが、今度はGDI +を使用して描画します(これははるかに単純で使いやすいように見えますが、これまでのところ、障害のあるWICコード)。

私は現在立ち往生していUpdateLayeredWindowます。何をしようとしても動かせません。現在、87、またはを返していERROR_INVALID_PARAMETERます。問題は、どちらが間違っているかということです。困った!UpdateLayeredWindow以下のコードは、動作を拒否しているという事実以外の解決策のようです。

私は何が間違っているのですか?

これは、HDC/ビットマップ情報/グラフィックスオブジェクトを設定するコードです。

上記は正常に機能します-私はそれをステップスルーし、すべてのポインターが機能します。

そして、これがPNGを描画する方法です。

髪を抜く!ヘルプ?

編集:関数の呼び出しを書き直すことにしましたUpdateLayeredWindow。これにより、誤ったパラメーターの問題が解決されました。これが私が思いついたものです。ただし、それでも機能しません。私は何が間違っているのですか?

0 投票する
1 に答える
1473 参照

winapi - WM_NCHITTESTはマウスカーソルを変更しません

カスタムNCHITTESTとNCCALCSIZEを実装するレイヤードウィンドウ(WS_EX_LAYERED)があり、ウィンドウのクライアントrectをウィンドウrectと同じにします。私のウィンドウのサイズとペイントは正しくあります。カーソルがウィンドウの下端近くにあるときにWM_NCHITTESTからHTBOTTOMを返すと、ウィンドウの下部から垂直方向のサイズ変更タイプのアクションが発生します。ただし、垂直サイズ変更カーソルが表示されません。WM_SETCURSORを実装して、ウィンドウの端に対するポインターの位置をテストせずに、これを修正する方法はありますか?

これが私のコードの抜粋です:

0 投票する
1 に答える
4244 参照

c++ - レイヤード ウィンドウに HBITMAP を描画します。どうしたの?

みなさん、こんにちは。

私の最終的な目標は、アルファを含む PNG ファイルを画面に描画することです。つまり、独自のウィンドウではなく、デスクトップのどこかに描画します。PNG を HBITMAP にロードする部分は動作するようになりました (別の方法でテストしました) が、アルファを含めて描画することができません。

私が聞いた限りでは、これを行う最善の方法は、レイヤード ウィンドウを使用することです。そのため、いくつかの例と小さなチュートリアルをやり直すために多くの作業を行いました。

次のコードは問題なくコンパイルされ、メッセージは表示されません (つまり、showError("#") 関数が呼び出されないことを意味します)。

それでも、画面には何も表示されません:/

長くなってすみません… 誰かが少なくともすぐにそれを見たいと思っています..

ちなみに、UpdateLayeredWindow で ULW_ALPHA の代わりに ULW_OPAQUE を使用すると、適切なサイズの黒いウィンドウが表示されるので、問題は PAINTSTRUKT または BitBlt 関数に関連する最小限のものでなければならないと思います..それでも、変更せずに多くの方法を試しました.

誰かが助けてくれることを願っています。事前にどうもありがとうございました!

0 投票する
1 に答える
846 参照

c++ - レイヤードウィンドウからのHBITMAPの取得-誤ったデータ

サイズが約400X300ピクセルのレイヤードウィンドウ(WS_EX_LAYEREDを使用)を作成しました。( UpdateLayeredWindow
を使用して)ウィンドウを描画すると、すべてがうまく機能します。

問題は、ウィンドウを描画した後、ウィンドウのHBITMAPを取得できないことです。ウィンドウのHDCを介してHBITMAPを取得しようとすると、デスクトップ全体のサイズ(400X300ピクセルではなく1920X1080ピクセル)の空の(黒の)ビットマップが表示されます。

レイヤードウィンドウのHDC\HBITMAPを取得することさえ可能かどうか誰かが知っていますか?

コードサンプル

レイヤードウィンドウを描画する方法のコードは次のとおりです(これもうまく機能します)。

ウィンドウのビットマップをキャプチャしてファイルに保存する方法のコードは次のとおりです(注意:電卓などの「通常の」ウィンドウで機能します)

ありがとう!

0 投票する
1 に答える
1936 参照

c# - レイヤード ウィンドウ、UpdateLayeredWindow、アルファ ブレンディング、およびマウス イベント

Windows フォームと C# では、WS_EX_LAYERED スタイルのフォームを使用し、UpdateLayeredWindowを呼び出して背景を透明/アルファ ブレンディングの画像に設定しています。

画像が透明なフォームの領域では、フォームはマウス イベントを受け取りません。フォームの下にあるウィンドウに移動します。

フォームがその表面全体でマウス イベント (マウスの移動、マウス ダウンなど) を受信できるように設定できるウィンドウ スタイルまたはオプションはありますか?

0 投票する
1 に答える
206 参照

winapi - LayeredWindows と可変アルファ透過性 - ブラシを使用していますか?

レイヤード ウィンドウがあります (SetLayeredWindowAttributes を使用)。ウィンドウ全体のアルファを 128 に設定し、その上に黒い四角形を描画すると、期待どおりに動作します (約 50% の不透明度で透けて見える黒い四角形)。

ただし、ウィンドウ全体に aplha を設定し (SetLayeredWindowAttributes を 255 に呼び出した場合)、50% に設定されたブラシで黒い四角形を描画すると、黒い四角形は完全にソリッドになり、半透明性はまったくありません。

この方法でレイヤー化されたウィンドウを作成すると、さまざまなレベルのピクセルごとのアルファを使用して描画できるため、これら 2 つは 2 つのレベルの不透明度を描画できるという印象を受けました。

しかし、これらの長方形は両方とも同じレベルの不透明度を持っています (1 つは 200、もう 1 つは 25 になると思います)。ウィンドウ全体(SetLayeredWindowAttributesの255)の不透明度のみを制御できます。

さまざまなレベルのアルファ半透明度で、さまざまな要素 (長方形だけでも) を描画できるようにするために、ここで何が欠けていますか?

ところで、デバイス コンテキストを使用してアクティブな描画を行っているため、(UpdateLayeredWindow ではなく) SetLayeredWindowAttributes が必要です。後者のアプローチでは、ビットマップを作成して一度に提供する必要があります。ありがとう!デイブ

0 投票する
0 に答える
436 参照

c# - C#のレイヤードウィンドウを備えたスプラッシュ画面

多層ウィンドウでクリックスルーが機能していますが、ウィンドウの背景画像の後ろに灰色が表示されますが、それを削除するにはどうすればよいですか?スタックオーバーフローとcodeprojectを調べましたが、解決策が見つかりません。

これは私のコードです:

0 投票する
1 に答える
1482 参照

c++ - Direct2D: 透明な親ウィンドウ上の不透明な子ウィンドウ

いくつかの不透明な複雑なコントロールが配置された透明な背景を持つ Direct2D アプリケーションを作成したいと考えています。この問題は、いくつかの下位の問題に分けることができます。

アーキテクチャ:コントロールを子ウィンドウとして実装する必要がありますか? 子ウィンドウ機能を実装する Direct2D ポリゴンを作成するのではなく、これが正しいアプローチだと思います。

親ウィンドウを初期化してこれを実装しようとしました:

子ウィンドウをWS_CHILDとして作成します。これにより、背景を含むすべての D2D ドローイングが透明な子が作成されました。子を不透明にする方法が見つかりませんでした。子ウィンドウをWS_POPUPまたはWS_OVERLAPPEDとして作成すると、不透明度の問題は解決されますが、子ウィンドウは親とは無関係のデスクトップに配置されます。

レイヤードウィンドウ? レイヤード Windows で作業することにしましたが、VistaSP2 以降を対象としているため、より良い解決策があるかもしれません。ここで提供されている解決策を試しましたが、私もそれを実装できませんでした。