参考资料:MFC、WTL消息映射机制
消息映射用法举例:
BEGIN_MESSAGE(W32Button, W32Wnd)
ON_W32MESSAGE(WM_LBUTTONDOWN, OnLButtonDown)
ON_W32MESSAGE(WM_LBUTTONUP, OnLButtonUP)
ON_W32MESSAGE(WM_ERASEBKGND, OnEraseBkgnd)
END_MESSAGE()
LRESULT OnEraseBkgnd(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 0;
}
LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 0;
}
LRESULT OnLButtonUP(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 0;
}
具体用法请参考W32Button.h所实现的支持自画Button类。
并非是要取代MFC和WTL、而在于在一些小项目中的轻量级解决方案。
之所以写这东西,主要是因为在将WTL类的Button派生后,如果在派生类中使用了消息映射,那么基类的消息映射就会失效,而MFC却可以,W32Wnd类源代码已经解决了此问题。