MFC(Visual C++.NET)のSDIベースで、マウスを使ってピクチャコントロールを適当な位置に配置しました。
このピクチャコントロールの位置座標(例えばウィンドウの左上を原点とした時の座標位置)を取得するにはどうしたらよいのでしょうか?
通常はGetClientRect です。
ウインドウの左上(非クライアント領域?)の場合、
GetWindowRect() の後
ScreenToClient() をします。
さっそくのご返信ありがとうございます。
下記のようにピクチャコントロール(IDC_PICT1)の位置の取得やってみたのですが、
CWnd* hA=GetDlgItem(IDC_PICT1);
CDC* pDCA=hA->GetDC();
CRect rA;
hA->GetClientRect(&rA);
ScreenToClient(&rA);
TRACE("%f",rA.left);
位置がいつも0.0と表示されます。
SDIのウィンドウからの座標位置を取得したいのですが、もしご存知でしたら、ご教授お願いいたします。
GetClientRectのヘルプは読まれましたか?
以下、VC6のヘルプより
> CWnd のクライアント領域のクライアント座標を lpRect で指される構造体に
> コピーします。クライアント座標は、クライアント領域の左上隅と右下隅を
> 示します。クライアント座標は CWnd のクライアント領域の左上隅からの
> 相対位置を示すので、左上隅の座標は (0,0) になります。
Discaさんの書かれている通り、GetWindowRectを使ってください。
Discaさま、みいさま
GetWindowRect()とScreenToClient()を使うことで座標の値を取得することが出来ました。
どうもありがとうございました。
ツイート | ![]() |