2012-12-30 205 views
-1

我正在使用VC6.如何解决错误?”错误C2065:'ON_WM_THEMECHANGED':未声明的标识符'

error C2065: "error C2065: 'ON_WM_THEMECHANGED' : undeclared identifier" 

类定义代码:

#include "stdafx.h" 
    #include "ConfigListCtrl.h" 
    #include "CellCtrls\ListCtrlCellWnd.h" 
    #include "CellCtrls\CellButton.h" 
    #include "Windows.h" 
    #include "Winuser.h" 
    // CConfigListCtrl 

    IMPLEMENT_DYNAMIC(CConfigListCtrl, CListCtrl) 

    CConfigListCtrl::CConfigListCtrl() : m_bInit(FALSE), m_bCaretExists(FALSE), m_bTabbedIn(FALSE), m_bKeyUp(FALSE), m_bIsEnabled(TRUE) 
    { 
    } 

    CConfigListCtrl::~CConfigListCtrl() 
    { 
     ForEachCellCtrl(&CConfigListCtrl::DeleteCellCtrl); 
    } 

    BEGIN_MESSAGE_MAP(CConfigListCtrl, CListCtrl) 
... 
     ON_WM_THEMECHANGED() 
... 
    END_MESSAGE_MAP() 
    ... 
    } 

看来,我已经错过了一些头文件或库文件,但它们是什么,如何解决反正它?

+2

请显示相关代码。 –

+1

正确的消息解析器位于''中,但听起来您需要先更新Windows SDK。检查你的系统的afxmsg.h文件,如果它在那里,你可能没有定义的最小_WIN32_WINNT来启用它(这是0x501,btw)。 – WhozCraig

回答

1

主题是在VC6数年后首次在Windows XP中引入的。您需要使用适当的win ... .h文件更新的Windows SDK。

+0

我对Windows编程还很陌生,但如何更新“Windows.h”?谢谢! – Al2O3

+1

@Ruby它将更新最新的[Windows SDK](http://www.microsoft.com/en-us/download/details.aspx?id=8279)(当前版本7.1,如果你对Metro不感兴趣,如果你是,你需要快速看到一个“特殊”医生)。 – WhozCraig

+2

@Ruby它** **可以在MFC 6.0中使用视觉样式。然而,它要求你得到一个新的ish SDK,并且自定义编译MFC的ISOLATION_AWARE_ENABLED。道路上会出现编译错误。没什么大不了的,但如果你刚开始这可能有点太多了。 – IInspectable

相关问题