私が書いたものではないプログラムがあります。私はそのソースを持っておらず、そのプログラムの開発者は独自に開発しています。彼は私にそのプログラムのHWND
とHINSTANCE
ハンドルをくれました。
win32
APIを使用して、彼のウィンドウに子ウィンドウを作成しました。
最初に必要なのは、この子ウィンドウの一部の領域を透明にし、他の領域を不透明にすることです (ゲームのヘッドアップ ディスプレイ (HUD) など)。これにより、ユーザーは両方のウィンドウで物事を見ることができます。
2 番目に必要なことは、すべての入力を親ウィンドウに送信することです。私の子ウィンドウは入力を必要としません。
WS_EX_TRANSPARENT
ペインターアルゴリズムのように、最後に子を描画させるだけであることを私は知っています。
WS_EX_LAYERED
子ウィンドウなので使えません。
ps
私はいたるところを見てきましたが、インターネット上で同様の質問がありましたが、解決策は見つかりませんでした.
実際、これはそのゲームの HUD のようなものです。マルチスレッドの複雑さのため、他の多くの理由で親ウィンドウに直接描画することはできません。
- 編集 - - - - - - - - - - - - - -
私はまだそれに取り組んでいます。皆様からのアドバイスを参考に色々と試しています。結合して機能する方法、または機能directX
と組み合わせる方法はありますか? それがうまくいくと思います。現在、すべてのものを子ウィンドウとレイヤード ウィンドウとしてテストしています。SetWindowRgn()
directx
BitBlt()