有没有办法在CWnd中处理wm_print消息(使用MFC)?我试图拦截此消息并阻止打印子控件。将ON_WM_PRINT()添加到我的消息映射会引发编译错误。
答案 0 :(得分:4)
MFC仅为最常见的消息定义ON_WM_XXXX()宏,但是还有一个通用的ON_MESSAGE()宏来允许您处理其他情况。添加
ON_MESSAGE(WM_PRINT, OnPrint)
到你的消息映射,然后声明并实现一个成员函数
afx_msg LRESULT OnPrint(WPARAM, LPARAM);
设备上下文在WPARAM中传递,因此在实现中需要这样的内容:
LRESULT MyWindowClass::OnPrint(WPARAM wp, LPARAM)
{
CDC* dc = CDC::FromHandle((HDC)wp);
// Do custom logic here ...
// Only call Default() if you want the default processing for this message too ...
return Default();
}