这样两个发送方法本来是等价的,结果出来却不一样??? ROW_NAME rows[3] = {
"A1", "A2", "A3",
"B1", "B2", "B3",
"C1", "C2", "C3"
}; for (int iCurrRow = 0; iCurrRow < sizeof rows / sizeof rows[0]; iCurrRow++)
{
SendMessageEx(LVIF_TEXT,iCurrRow,0,rows[iCurrRow].szCol1,LVM_INSERTITEM);
SendMessageEx(LVIF_TEXT,iCurrRow,1,rows[iCurrRow].szCol2,LVM_SETITEMTEXT);
SendMessageEx(LVIF_TEXT,iCurrRow,2,rows[iCurrRow].szCol3,LVM_SETITEMTEXT);
// m_listCtrl.InsertItem(iCurrRow, rows[iCurrRow].szCol1, 0);
// m_listCtrl.SetItemText(iCurrRow, 1, rows[iCurrRow].szCol2);
// m_listCtrl.SetItemText(iCurrRow, 2, rows[iCurrRow].szCol3); }
void CListCtrlDemoDlg::SendMessageEx(UINT mask, UINT iItem,UINT iSubItem,LPTSTR pszText,UINT Msg)
{
// HWND hWnd = ::FindWindow(NULL,_T("DTS"));
ASSERT(hWnd!=NULL); LVITEM item;
memset(&item,0,sizeof(LVITEM));
item.pszText = pszText;
item.iItem = iItem;
item.mask = mask;
item.iSubItem = iSubItem;
SendDlgItemMessage(IDC_LIST1,Msg,0,(LPARAM)&item);
}
用sendmessage和直接Insert的方法本来是一样的,但效果出来sendmessaeg插入的新行的第二列之后都跑到第一行的相应列了!第一行的相应列不见了!!!
为什么
============>>>>>
SendDlgItemMessage(IDC_LIST1,Msg,iItem,(LPARAM)&item); OK?