首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于:SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi)的有关问题

2012-02-13 
关于::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi)的问题很简单的一段代码LV_ITEMlvilvi.iIte

关于::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi)的问题
很简单的一段代码
LV_ITEM   lvi;
lvi.iItem=::SendMessage(hWnd,LVM_GETNEXTITEM,(WPARAM)0,MAKELPARAM((UINT)LVNI_SELECTED,0));//1
if(-1!=lvi.iItem)
{
TCHAR   szName[_MAX_FNAME];
lvi.mask=LVIF_TEXT;
lvi.iSubItem=0;
lvi.pszText=szName;
lvi.cchTextMax=_MAX_FNAME;
::SendMessage(hWnd,LVM_GETITEM,(WPARAM)0,(LPARAM)&lvi);//2
}
请问为什么第一个SendMessage会成功返回当前选中的项,第二个SendMessage却会失败???

[解决办法]
LV_ITEM.iSubItem
One-based index of the subitem to which this structure refers, or zero if this structure refers to an item rather than a subitem.

可能是mask=LVIF_TEXT, 而Item不能取回TEXT,只有SubItem才能取回Text。

绝对和hWnd是另外一个进程中的句柄无关。

热点排行