版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_24206709/article/details/80823736
《C++笔记》 Part12 MFC的CToolbar中嵌入ComboBox和EditCtrl
2、由VC6升级到VS2010(其它高版本VS也一样)中时遇到的问题
ON_NOTIFY的NMTOOLBAR老是提示错误:
error C2440: “static_cast” : 无法从“void (__thiscall CMainFrame::* ) (NMTOOLBARA ,LRESUyiyLT )”转换为“void (__thiscall CCmdTarget::* ) (NMHDR ,LRESULT )”
3、错误解决方法:
void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmtb, LRESULT *plr)
把他改成:
void CMainFrame::OnToolbarDropDown(NMHDR* pnmhdr, LRESULT *plr)
在函数实现里加上强制转换
LPNMTOOLBAR pnmtb = reinterpret_cast<LPNMTOOLBAR>(pnmhdr);
注:
**
1、该程序是针对CToolbar而言的,一般针对普通的对话框或多文档程序的toolbar;
2、对向CMFCToolbar加入ComoBox和EditCtrl需要使用其它的方法(具体方法见下篇),因为CMFCToolbar继承于CMFCBaseToolBar,而CMFCBaseToolBar继承于CPane,与CToolBar**继承的父类完全不同**。
**