2009-07-09 16 views
0

アプリケーションのウィンドウ位置を特定しようとしています。私はSetWindowPos()特定のサイジングで特定の位置にウィンドウの位置を設定することを知っている。私はこの情報を取得したいと思いますが、私はそこにいくつかの負の値を気付いています。これらの値をレジストリに保存してから次のインスタンスにロードすると、サイジングと配置の情報を正確に複製できません。これは最初の場所で使用される最も正確な機能ですか?MFC:GetWindowRect usage

ありがとうございました。

答えて

3

ウィンドウの位置だけでなくウィンドウの状態(最小化、最大化など)を持つWINDOWPLACEMENT構造体を取得するには、GetWindowPlacementメソッドを呼び出す必要があります。

また、この情報をレジストリに格納し、レジストリから値を読み取るときに、ウィンドウの状態を設定する必要があります。

+0

初めてWINDOWPLACEMENT構造体を設定すると、この構造体のlength要素の設定方法がわかりません。この場合、この要素に何をすべきか(他の要素と同様) – stanigator

+0

なぜこれは分かりませんか?構造体の長さをバイト数で表します。これはsizeof(wp)を使用して取得できます.wpはWINDOWPLACEMENT構造変数です。 – casperOne

2

はい、GetWindowRectは必要な機能です。ネガティブ値は、ウィンドウがプライマリモニタの上または左にある場合にのみ、複数のモニタシステムでのみ有効になります。

SetWindowPosは、ウィンドウの親ウィンドウに相対的な位置を設定するので、座標を調整してから呼び出す必要があります。