对 BEGIN_MSG_MAP 和 BEGIN_MSG_MAP_EX 感到困惑

发布于 2024-10-31 12:25:59 字数 624 浏览 0 评论 0原文

我正在追踪一个 bug,我怀疑根源可能在于使用 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 吗?

I am tracing a bug and I suspect the root could be in the use of WTL macros. When sould I use *_EX and when normal macros. For BEGIN_MSG_MAP_EX there is a note in 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.

but how about the rest or the macros ? can I use both COMMAND_ID_HANDLER and COMMAND_ID_HANDLER_EX in the same BEGIN_MSG_MAP_EX for example ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

醉梦枕江山 2024-11-07 12:25:59

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

I recommend BEGIN_MSG_MAP_EX because it supports more handlers. It also supports the BEGIN_MSG_MAP handlers.

禾厶谷欠 2024-11-07 12:25:59

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

#undef BEGIN_MSG_MAP
#define BEGIN_MSG_MAP BEGIN_MSG_MAP_EX

因此现在使用 BEGIN_MSG_MAP 的代码将被转换为 BEGIN_MSG_MAP_EX code> 在各个方面都更好。

It will be safer if you add this to your main header file (probably stdafx.h)

#undef BEGIN_MSG_MAP
#define BEGIN_MSG_MAP BEGIN_MSG_MAP_EX

So now code that is using BEGIN_MSG_MAP will be translated to BEGIN_MSG_MAP_EX which is better in every aspect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文