有没有办法在 CWnd 中处理 wm_print 消息(使用 MFC)?我试图拦截此消息并阻止打印子控件。将 ON_WM_PRINT() 添加到我的消息映射会引发编译错误。
最佳答案
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();
}
关于winapi - 如何在 CWnd 中处理 wm_print 消息(使用 MFC)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000458/