VCL以外のウインドウのクライアント座標を計算する
別プロセスのウインドウのクライアント座標を取得する方法です。ネタが無いので結構前に私がNiftyのFDELPHIにRESした物をパクって来ました(^^;
自プロセスであればコンポーネントから取得計算できるので、あまり意味がありません(^^;;;;

{hOwnerは座標を取得したいウインドウの親ウインドウのハンドル。
hChildはhOwnerの子ウインドウのウインドウハンドルを指定します。}

function GetClientPos(hOwner, hChild: THandle): TPoint;
var
  rc: TRect;
begin
  GetWindowRect(hChild, rc);
  Result := rc.TopLeft;
  Windows.ScreenToClient(hOwner, Result);
end;

Back    Prev    Next