2011-04-11 72 views
3

我跟蹤bug,我懷疑根可能在使用WTL宏。當我可以使用* _EX和正常的宏時。對於BEGIN_MSG_MAP_EX存在atlcrack.hBEGIN_MSG_MAP和BEGIN_MSG_MAP_EX混淆

// 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嗎?

回答

1

我推薦BEGIN_MSG_MAP_EX,因爲它支持更多的處理程序。它也支持BEGIN_MSG_MAP處理程序。

0

如果您添加到正在使用BEGIN_MSG_MAP將被轉換爲BEGIN_MSG_MAP_EX這是在各方面更好的主頭文件(可能stdafx.h

#undef BEGIN_MSG_MAP 
#define BEGIN_MSG_MAP BEGIN_MSG_MAP_EX 

所以現在代碼這將是更安全的。