SendMessage和直接用函数操作的结果不一样???????

pinkpray 2006-06-21 12:39:48



这样两个发送方法本来是等价的,结果出来却不一样???



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插入的新行的第二列之后都跑到第一行的相应列了!第一行的相应列不见了!!!
为什么




...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cici2006 2006-06-23
  • 打赏
  • 举报
回复
行数不对啦。
thesuper 2006-06-23
  • 打赏
  • 举报
回复
应该是插入行项不对吧
Torch009 2006-06-21
  • 打赏
  • 举报
回复
wParam和lParam设置的对吗?
yzxandfcm 2006-06-21
  • 打赏
  • 举报
回复
帮顶!
折腾_苏州 2006-06-21
  • 打赏
  • 举报
回复
SendDlgItemMessage(IDC_LIST1,Msg,0,(LPARAM)&item);
============>>>>>
SendDlgItemMessage(IDC_LIST1,Msg,iItem,(LPARAM)&item); OK?

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧