WTL状态栏出现 'CMultiPaneStatusBarCtrl' : missing storage-class or type specifie错误
江西理工 FangSH 2010-8-27
学WTL工具条和状态栏。按例子做了一个Clock3程序 却出现如下的错误:
WTLClock_Rebar.cpp
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2146: syntax error : missing ';' before identifier 'm_wndStatusBar'
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2501: 'CMultiPaneStatusBarCtrl' : missing storage-class or type specifiers
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2501: 'm_wndStatusBar' : missing storage-class or type specifiers
aboutdlg.cpp
mainfrm.cpp
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2146: syntax error : missing ';' before identifier 'm_wndStatusBar'
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2501: 'CMultiPaneStatusBarCtrl' : missing storage-class or type specifiers
e:\编程文档\wtl\wtl_study_fangsh\wtlclock_rebar\mainfrm.h(62) : error C2501: 'm_wndStatusBar' : missing storage-class or type specifiers
E:\编程文档\WTL\WTL_Study_FangSH\WTLClock_Rebar\mainfrm.cpp(50) : error C2065: 'm_wndStatusBar' : undeclared identifier
E:\编程文档\WTL\WTL_Study_FangSH\WTLClock_Rebar\mainfrm.cpp(50) : error C2228: left of '.Create' must have class/struct/union type
E:\编程文档\WTL\WTL_Study_FangSH\WTLClock_Rebar\mainfrm.cpp(56) : error C2228: left of '.SetPanes' must have class/struct/union type
WTLClock_Rebarview.cpp
Generating Code...
主要原因是因为没有定义CmultiPaneStatusBarCtrl所引起的。 仔细检查后发现原来在stdafx.h中没有添加头文件#include <atlctrlx.h> 所致
在atlctrlx.h中可以找到
class CMultiPaneStatusBarCtrl : public CMultiPaneStatusBarCtrlImpl<CMultiPaneStatusBarCtrl>
{
public:
DECLARE_WND_SUPERCLASS(_T("WTL_MultiPaneStatusBar"), GetWndClassName())
};
――end