C++BuilderのClientToScreenメソッドでクリックされた画面上の座標を取得する

OnMouseDownイベントでは、コントロール上の座標が引数で渡されます。

ClientToScreenメソッドを使うと、このコントロール上の座標を画面上の座標に変換できます。

画面上の座標は、ScreenToClientメソッドでコントロール上の座標に変換できます。

void __fastcall TForm1::Button1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
  //コントロール上の座標
  Label1->Caption = Format(L"コントロール上の座標 X=%d Y=%d", ARRAYOFCONST((X, Y)));
  //画面上の座標
  TPoint screenPoint = Button1->ClientToScreen(TPoint(X, Y));
  Label2->Caption = Format(L"画面上の座標 X=%d Y=%d", ARRAYOFCONST((screenPoint.X, screenPoint.Y)));
  //フォーム上の座標
  TPoint formPoint = Form1->ScreenToClient(screenPoint);
  Label3->Caption = Format(L"フォーム上の座標 X=%d Y=%d", ARRAYOFCONST((formPoint.X, formPoint.Y)));
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください