“错误 C2065:'ON_WM_THEMECHANGED':未声明的标识符”[关闭]
Posted
技术标签:
【中文标题】“错误 C2065:\'ON_WM_THEMECHANGED\':未声明的标识符”[关闭]【英文标题】:"error C2065: 'ON_WM_THEMECHANGED' : undeclared identifier" [closed]“错误 C2065:'ON_WM_THEMECHANGED':未声明的标识符”[关闭] 【发布时间】:2012-12-30 03:46:07 【问题描述】:我使用的是VC6。如何解决这个错误?
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()
...
好像漏掉了一些头文件或者lib文件,但是它们是什么,怎么解决呢?
【问题讨论】:
请出示相关代码。 正确的消息破解者在<afxmsg.h>
,但听起来您需要先更新Windows SDK。检查你系统的 afxmsg.h 文件,如果它在里面,你可能没有定义最小的 _WIN32_WINNT 来启用它(这是 0x501,顺便说一句)。
【参考方案1】:
在 VC6 几年之后,Windows XP 首次引入了主题。您将需要更新的 Windows SDK 以及相应的 win....h 文件。
【讨论】:
我是 Windows 编程的新手,但是如何更新“Windows.h”?谢谢! @Ruby 它更新了最新的Windows SDK(如果您对 Metro 不感兴趣,则当前版本为 7.1,如果您有兴趣,则需要尽快去看“特殊”医生)。 @Ruby 它可以在 MFC 6.0 中使用视觉样式。但是,它要求您获得一个新的 SDK 并自己从源代码编译 MFC,并定义ISOLATION_AWARE_ENABLED
。以后会出现编译错误。没什么大不了的,但如果你刚刚开始,这可能有点太多了。以上是关于“错误 C2065:'ON_WM_THEMECHANGED':未声明的标识符”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章