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

标签 winapi visual-c++ mfc

有没有办法在 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/

相关文章:

visual-studio - Visual Studio 在断言失败时退出,没有错误消息

visual-c++ - 使用定时器提高读/写串行端口的速度

C++ MFC 调试断言失败!在静态 MFC 中

c++ - 访问属性表中的控件

c# - 使用pyHook获取鼠标双击

c++ - 生成 C++ 项目中所有类的列表

windows - 强制 Windows 刷新磁盘 FAT

c - connect() 因 WSAETIMEDOUT 失败后重用套接字?

C++ 线程安全 - 在 worker 和 controller 之间交换数据

c++ - 检测 windows jpeg 图标