0

でウィンドウのサイズを変更していますが、MoveWindow()そのウィンドウを所有していません。私は単に別のプロセスからそれを盗みました、そして今私はそのhWindowをいじっています。

しかし、私がそれを盗んだプロセスは、メッセージループを実行し、それらのメッセージの一部(、、、など)を処理するWM_MOVEことでした。これWM_SIZEによりWM_GETMINMAXINFO、基本的に、私がやりたいことを何もできなくなりました。フルスクリーンで実行するための鍵となる、指定された最大値を超えてサイズを変更できない場合もあります。

asmを使用する以外に、メッセージングをバイパスする方法はありますか?

4

1 に答える 1

1

SetWindowPosあなたがそれで何かをしていることをウィンドウに伝えないためのフラグがあります:

SetWindowPos (hwnd, 0, x, y, width, height, SWP_NOZORDER | SWP_NOSENDCHANGING);

コメントで述べたように、少し楽しむ以上に使用するコードでこの動作に依存することは、他のウィンドウにとって良くも公平でもありません。また、非常に簡単に問題が発生する可能性があります。Raymond Chenは、これに関して特に興味深いブログ投稿をいくつか持っています。つまり、「2つのプログラムがこれを実行した場合はどうなるでしょうか?」などです。

于 2012-06-15T05:10:12.850 に答える