有没有办法在 CWnd(使用 MFC)中处理 wm_print 消息?我正在尝试拦截此消息并阻止打印子控件。将 ON_WM_PRINT() 添加到我的消息映射会引发编译错误。
问问题
861 次
1 回答
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();
}
于 2012-08-17T07:27:31.197 回答