行数确定动态增加列的listctrl,怎么让它只是刷新新增加的一列呢,谁能给个方法,thx!
TCHAR lpBuffer[100];
LV_ITEM lvi;
lvi.mask = LVIF_TEXT | LVIF_PARAM ;
lvi.iItem = lpDrawItemStruct->itemID ;
lvi.iSubItem = 0;
lvi.pszText = lpBuffer ;
lvi.cchTextMax = sizeof(lpBuffer);
VERIFY(GetItem(&lvi));
LV_COLUMN lvc, lvcprev ;
::ZeroMemory(&lvc, sizeof(lvc));
::ZeroMemory(&lvcprev, sizeof(lvcprev));
lvc.mask = LVCF_WIDTH | LVCF_FMT;
lvcprev.mask = LVCF_WIDTH | LVCF_FMT;
int count, col_count = 1,num = 0;
RECT rect,rect1;
CString str;
CDC* pDC;
pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
col_count = GetHeaderCtrl()->GetItemCount();
for(int k = 0; k < col_count; k++)
{
if(k == 0)
{
GetColumn(k, &lvcprev);
rect.left = lpDrawItemStruct->rcItem.left;
rect.right = rect.left + lvcprev.cx ;
}
else if ( k > 0 )
{
GetColumn(k - 1, &lvcprev) ;
rect.left += lvcprev.cx ;
GetColumn(k, &lvcprev) ;
rect.right = rect.left + lvcprev.cx;
}
}
int nCol = col_count - 1;
::ZeroMemory(&lvi, sizeof(lvi));
lvi.iItem = lpDrawItemStruct->itemID;
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iSubItem = nCol;
lvi.pszText = lpBuffer;
lvi.cchTextMax = sizeof(lpBuffer);
VERIFY(GetItem(&lvi));
DrawText(lpDrawItemStruct->itemID, nCol, lpDrawItemStruct->hDC, rcText_color, rcBK_color, lpDrawItemStruct->rcItem);
pDC->SelectStockObject(SYSTEM_FONT) ;