0
說我有一個Windows列表視圖有兩列,然後我可以得到具有LVM_GETITEMRECT的行的Rec,但該Rec不包括ListView未被列覆蓋的區域,我如何確定這一點矩形區域,所以我可以畫出來嗎?ListView行非列矩形
在圖片中我想要的區域是藍色的高亮到無柱權,這基本上是剛剛到全行選擇看起來像它的全排。
說我有一個Windows列表視圖有兩列,然後我可以得到具有LVM_GETITEMRECT的行的Rec,但該Rec不包括ListView未被列覆蓋的區域,我如何確定這一點矩形區域,所以我可以畫出來嗎?ListView行非列矩形
在圖片中我想要的區域是藍色的高亮到無柱權,這基本上是剛剛到全行選擇看起來像它的全排。
一旦獲得該行的RECT
,只需將其right
字段更改爲與ListView客戶區的寬度相同的值。
RECT rectRow;
ListView_GetItemRect(hListView, iRow, &rectRow, LVIR_BOUNDS);
RECT rectCli;
GetClientRect(hListView, &rectCli);
rectRow.right = (rectCli.right - rectCli.left);
謝謝,你知道這不正是我想要什麼,但我重繪非行區域代碼是關於LVN_ITEMCHANGED事件,不能使用LVN_ITEMCHANGING因爲老闆的數據,其引起有點滯後,其中的行被刪除突出顯示,然後突出顯示新選擇的行,然後非突出顯示的非行區域被高亮顯示,您不會知道繪製非行區域的正確事件? –
'LVN_ITEMCHANG(ING/ED)'不是繪畫事件。您應該只在「NM_CUSTOMDRAW」事件中繪製所有內容。如果您需要在發生更改時觸發重繪,請使用'LVM_REDRAWITEMS'。 –