回 帖 发 新 帖 刷新版面

主题:类型转换问题

我在消息印射中添加了:
ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR,OnToolbarDropDown)
OnToobarDropDown声时如下:
class CMainFrame : public CMDIFrameWnd
{
public:
afx_msg void OnToolbarDropDown(NMTOOLBAR* pnmh, LRESULT* plRes);
}

编译时出错:“static_cast” : 无法从“void (__thiscall CMainFrame::* )(NMTOOLBARA *,LRESULT *)”转换为“void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)”

这是什么原因,原代码我是从网上看的,作者用的是VC6。我在VS2003中编译才出现上述问题。怎么解决。请高手指教。

回复列表 (共1个回复)

沙发

不知道你的问题解决没有,我今天也为此迷惑,到处找也只找到你这个贴,应该是VC7数据机制吧,最终还是自己解决的:把声明改成:OnToolbarDropDown(NMHDR* pnmhdr, LRESULT* plRes)
然后在函数里把指针进行转换:NMTOOLBAR* pnmh=(NMTOOLBAR*)pnmhdr;
编译OK!

我来回复

您尚未登录,请登录后再回复。点此登录或注册