Top / Programming / C++Builder / カーソルの位置にあるグリッドのセルを取得する

カーソルの位置にあるグリッドのセルを取得する

  1. Mouse->CursorPos でマウスカーソルの画面上の位置を取得します
  2. TControl::ScreenToClient() でコントロールの座標に変換します
  3. TCustomDrawGrid::MouseToCell() でコントロール上の座標の位置にあるセルを取得します

//グリッドをダブルクリックしたとき、
//マウスカーソルの位置にあるセルを表示する
void __fastcall TForm1::StringGrid1DblClick(TObject *Sender)
{
  //col、rowにマウスカーソル下のセルの列、行が入ります。
  int col, row;
  TPoint p = StringGrid1->ScreenToClient(Mouse->CursorPos);
  StringGrid1->MouseToCell(p.x, p.y, col, row);

  AnsiString text = "列:" + IntToStr(col) + "、行:" + IntToStr(row);
  Application->MessageBox(text.c_str(), text.c_str());
}