我的程序用了Cllistview控件,我想在菜单里面的某项被选择之后做跟发生了NM_DBLCLK事件同样的工作,,我把两个消息映射到同一个函数,出错,说类型不一样,不能转换; 我在菜单函数中调用NM_DBLCLK的响应函数,,不行,参数不对用“SendMessage(NM_DBLCLK)”,没反应请教各位高手,要怎样才能成功调用那个函数?另外,如何能够判断当前是否有选项被选中,或者当前选中的item的index(鼠标不一定停留在那个item上面)???
调试欢乐多
双击时候的响应函数是void CTest01View::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult);
菜单项响应函数是void CTest01View::OnPopEdit();直接调用的时候会出现那两个参数未知的错误;sendmessage的时候后面两个参数是什么?如果都填上0,会出现错误,在wincore.cpp函数里面执行
if (message == WM_NOTIFY)
{
NMHDR* pNMHDR = (NMHDR*)lParam;
if (pNMHDR->hwndFrom != NULL && OnNotify(wParam, lParam, &lResult))
goto LReturnTrue;
return FALSE;
}
的时候要用到pNMHDR->hwndFrom 的时候会出错,因为这个时候pNMHDR = (NMHDR*)lParam ,值是NULL。我的菜单响应函数跟OnNMDblclk是在同一个类里面的。
if (pos) // item selected
{
int nIndex = GetNextSelectedItem(pos);
...
}