3

我正在跟踪一个错误,我怀疑根可能是在使用 WTL 宏。当我使用 *_EX 和普通宏时。对于 BEGIN_MSG_MAP_EX,atlcrack.h 中有一条注释

// Note about message maps with cracked handlers:
// For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
// For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
// but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.

但是其余的或宏呢?例如,我可以在同一个 BEGIN_MSG_MAP_EX 中同时使用 COMMAND_ID_HANDLER 和 COMMAND_ID_HANDLER_EX 吗?

4

2 回答 2

1

我推荐 BEGIN_MSG_MAP_EX 因为它支持更多的处理程序。它还支持 BEGIN_MSG_MAP 处理程序。

于 2011-04-18T19:59:31.500 回答
0

如果将其添加到主头文件中会更安全(可能stdafx.h

#undef BEGIN_MSG_MAP
#define BEGIN_MSG_MAP BEGIN_MSG_MAP_EX

所以现在正在使用的代码BEGIN_MSG_MAP将被翻译成BEGIN_MSG_MAP_EX在各个方面都更好的代码。

于 2011-08-31T04:09:50.703 回答