我正在尝试创建自定义CListBox派生类。我无法弄清楚如何正确设置消息映射的东西。这是我正在使用的当前代码:
template <class T>
class CHScrollListBoxT : public CWindowImpl<CHScrollListBoxT<T> , CListBox>
{
public:
BEGIN_MSG_MAP(CHScrollListBoxT< T >)
MESSAGE_HANDLER(LB_ADDSTRING, OnAddString)
MESSAGE_HANDLER(LB_INSERTSTRING, OnInsertString)
MESSAGE_HANDLER(LB_DELETESTRING, OnDeleteString)
MESSAGE_HANDLER(LB_DIR, OnDir)
MESSAGE_HANDLER(LB_RESETCONTENT, OnResetContent)
END_MSG_MAP()
...
我遇到的问题是如何将其余窗口消息路由回基本CListBox类(换句话说,对消息映射中未指定的任何窗口消息执行默认处理)。我不想要覆盖CListBox的每个适用的消息处理程序。我试过了:
CHAIN_MSG_MAP(CWindowImpl<CHScrollListBoxT<T>, CListBox>
但它没有编译。
答案 0 :(得分:1)
您没有指定编译器错误,但据说问题是您提供带有嵌入空格和逗号的宏参数。你可以这样做:
typedef CWindowImpl<CHScrollListBoxT<T>, CListBox> CBaseWindow;
CHAIN_MSG_MAP(CBaseWindow)