求助,类型转换错误,vc6可以通过,但是vc2005编译错误, 紧急
求助,类型转换错误,vc6可以通过,但是vc2005编译错误,有一个编译错误,但是在vc6却没有问题,2005无法通过,求达人帮助
afx_msg void OnAddString(const CString* str);(函数声明)
错误说明: “static_cast”: 无法从“void (__thiscall COutputView::* )(const CString *)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
我把函数改成LRESULT COutputView::OnAddString(WPARAM wparam,LPARAM lparam)结果错误更多(函数体及声明见后面)
由于必须函数指针参数类型必须一致,参数个数必须一致,返回值必须一致,调用方式必须一致
所以具体怎么实现,请高手知道一下,最好能够将函数的声明及传递参数写明
afx_msg void OnAddString(const CString* str); //头文件声明
ON_MESSAGE(UMSG_ADDSTRING,OnAddString)
void COutputView::OnAddString(const CString* str) //源函数定义
{
m_strList.AddTail(*str);
CSize size = GetTotalSize();
int height = m_strList.GetCount()*m_FontHeight;
if(height > size.cy){
SetScrollSizes(MM_TEXT,CSize(500,height));
POINT pt;
pt.x = 0;
pt.y = height;
ScrollToPosition(pt);
}
Invalidate(FALSE);
MSG msg;
if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
}
}