どうしてもわからないので質問します。
ダイアログボックス上に設置したエディットボックスを
GetWindowRect()で取得した現在位置の情報を
SetWindowPos()の設定値にし実行したのですが
現在位置とは違う場所へ移動してしまいました。
コードは↓の通りなんですが何がおかしいのでしょうか?
RECT rc;
GetWindowRect(EDITBOXのハンドル, (LPRECT)&rc);
SetWindowPos(EDITBOXのハンドル, HWND_TOP, rc.left, rc.top, 0, 0, SWP_NOSIZE);
MSDNをちゃんと読みましょう。
GetWindowRect
http://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_getwindowrect.asp
> pRect
> この構造体の left メンバと top メンバに、スクリーン座標でのウィンドウ左上端の座標が入ります。
SetWindowRect
http://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_setwindowpos.asp
> X
> ウィンドウの左上端の新しい x 座標をクライアント座標で指定します。
> Y
> ウィンドウの左上端の新しい y 座標をクライアント座標で指定します。
必要になるのはこのあたり。
ScreenToClient
http://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_screentoclient.asp
ツイート | ![]() |