私が今持っているもの: C# の私のアプリは半透明で、winapi イベントをキャッチしません。これを使用して、ブラウザが表示するものの上に情報を重ねます。これは私のコードです:
int exstyle = GetWindowLong(this.Handle, GWL_EXSTYLE);
exstyle |= WS_EX_TRANSPARENT;
SetWindowLong(this.Handle, GWL_EXSTYLE, exstyle);
IntPtr hwndf = this.Handle;
IntPtr hwndParent = GetDesktopWindow();
SetParent(hwndf, hwndParent);
しかし今、すべてのイベントをアプリ ウィンドウ (上部が半透明) と Web ブラウザー (アプリの下) の両方に送信したいと考えています。たとえば、クリックすると、両方のウィンドウが上にあるかのようにクリックが機能します。それを行う唯一の方法は、すべてのイベントをキャッチしてから下のウィンドウに転送することだと思いますが、それを行う方法はありますか? ウィンドウライブラリとしてwinformsを使用しています。
通常はイベントを消費してから、下にあるウィンドウに転送したいので、私が今やっていることはそれほど重要ではありません。これは、私が現在 WS_EX_TRANSPARENT で行っていることとは完全に異なるものです。これのポイントは、両方のウィンドウでコンテンツを同時にドラッグすることです。それを行うより良い方法があれば、私はそれを聞いてうれしいです.
少なくとも私が必要とするのは、ドラッグ イベントを両方のウィンドウに転送し、他のすべてのイベントを下にあるウィンドウ (私の制御下にない) に転送することです。したがって、ウィンドウを WS_EX_TRANSPARENT (下にあるウィンドウにイベントをパススルーさせる) のままにして、単にグローバル フックをインストールしてドラッグ イベントを受け取る方が簡単でしょうか? どう思いますか?
ところで、私は Winapi の経験がないので、解決策は明白かもしれません。