有了一段代码,测试一下,基本可行
procedure TForm7.ListView1Click(Sender: TObject);
const
ItemIndent =4;
CheckBoxSize =16;
var
I :Integer;
P :TPoint;
AItem :TListItem;
R1, R2 : TRect;
begin
with ListView1 do
begin
P :=ScreenToClient(Mouse.CursorPos);
AItem := GetItemAt(P.X, P.Y);
if AItem <>nil then
begin
R1 :=AItem.DisplayRect(drSelectBounds);
R2 :=Rect(ItemIndent, R1.Top, ItemIndent + CheckBoxSize, R1.Top + CheckBoxSize);
if ptInRect(R2, P) then
if AItem.Checked then
ShowMessage(Format('Item[%d] is Checked',[AItem.Index]))
else
ShowMessage(Format('Item[%d] is not Checked',[AItem.Index]));
end;
end;
end;