ListView GetRect

ListView GetRect,listview,winapi,Listview,Winapi,使用LVM_GETITEMRECT和LVM_GETSUBITEMRECT,我可以得到列或行矩形,但我希望得到整个行矩形加上右侧任何到滚动条为止没有列的区域,我如何实现这一点?我尝试过GetClientRect,然后添加了差异,但它似乎总是包括滚动条的宽度,这是为了在整行绘制备用背景色 设置矩形的右边缘以匹配客户端宽度是正确的做法。您可以使用GetSystemMetrics(SM_CXVSCROLL)减去滚动条的宽度。滚动条是非客户端区域的一部分,即它已被排除在客户端区域之外。

使用LVM_GETITEMRECT和LVM_GETSUBITEMRECT,我可以得到列或行矩形,但我希望得到整个行矩形加上右侧任何到滚动条为止没有列的区域,我如何实现这一点?我尝试过GetClientRect,然后添加了差异,但它似乎总是包括滚动条的宽度,这是为了在整行绘制备用背景色

设置矩形的右边缘以匹配客户端宽度是正确的做法。您可以使用
GetSystemMetrics(SM_CXVSCROLL)
减去滚动条的宽度。

滚动条是非客户端区域的一部分,即它已被排除在客户端区域之外。