如何在CWnd中处理wm_print消息(使用MFC)?

时间:2012-08-17 05:53:01

标签: winapi visual-c++ mfc

有没有办法在CWnd中处理wm_print消息(使用MFC)?我试图拦截此消息并阻止打印子控件。将ON_WM_PRINT()添加到我的消息映射会引发编译错误。

1 个答案:

答案 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();
}