2

C++ (古い学校の Win32 と WTL のハイブリッド) で複雑なプログラムを使用していますが、これはタスク バーのタイル/カスケード要求に応答しません (つまり、タスク バーを右クリックし、[Cascade Windows] または [Show window side by side] を選択します)。 . spy++ を使用すると、他のプログラム (この場合は Firefox) が一連の WM_GETMINMAXINFO、WM_SIZE、WM_PAINT を取得する一方で、どのウィンドウもウィンドウ メッセージを受信して​​いないことがわかりました。

私のフレーム ウィンドウは、WS_OVERLAPPEDWINDOW としてスタイル設定されています。フレーム ウィンドウを作成する前に、いくつかの非表示のウィンドウを作成します。複数の異なる OS でテストしましたが、症状は同じです。Windows シェルがフレーム ウィンドウにメッセージを送信するための制限や前提条件はありますか?

4

1 に答える 1

2

Windowsは、タスクバーボタンで表されるウィンドウにメッセージを送信します。

あなたのアプリでは、ここで少し推測していますが、これはタスクバーボタンで表される非表示のウィンドウの1つです。ウィンドウマネージャーは、これらのメッセージを非表示のウィンドウに送信しません。

メインウィンドウがタスクバーに表示されるウィンドウになるように配置することで、問題を解決できます。タスクバーに表示されるウィンドウの詳細については、MSDNの優れたトピック「ウィンドウの機能」を参照してください。

于 2011-04-15T19:41:43.160 に答える