2

(MFC を使用して) CWnd で wm_print メッセージを処理する方法はありますか? このメッセージを傍受し、子コントロールの印刷を防止しようとしています。ON_WM_PRINT() をメッセージ マップに追加すると、コンパイル エラーがスローされます。

4

1 に答える 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 に答える