12

ウィンドウがあり、ウィンドウが閉じたときにその位置を保存し、ウィンドウが再び開いたときにそれを復元したいとしましょう。これを行う典型的な方法は、GetWindowPlacement / SetWindowPlacement を呼び出すことです。これにより、位置と最大化/最小化状態が記憶されます。

Windows 7 では、「エアロ スナップ」機能を使用してウィンドウを画面の横にドッキングできます。私の質問は、「スナップ」状態を復元できるように、「スナップ」されたウィンドウをどのように保存および復元するかです。GetWindowPlacement / SetWindowPlacement ではこの問題は解決されず (私の知る限り)、Windows 7 で「スナップ」API を見たことがありません。

here にも同様の質問があり ます Windows7によってウィンドウのサイズが変更されたことを検出する方法ですが、この場合、OPは「スナップ」状態ではなく、復元位置を望んでいるようです。

4

2 に答える 2

6

回避策は、 を呼び出しGetWindowRect()て実際のウィンドウ座標を取得し、それらを の不適切な座標にコピーすることWINDOWPLACEMENT::rcNormalPositionです。

于 2012-09-27T20:04:14.453 に答える