[kaze's test] プログラミングメモ →目次

印刷プレビューが出せない問題の解決方法(VC++)

印刷プレビューが出せない問題は、二つの場合にが出ます。一つはダイアログベースでの印刷プレビューですが、もう一つは、ドキュメント/ビューベースで、MFCのスタティックライブラリをリンクする場合は、
印刷プレビューが出せないという不具合です。



いずれにしても、印刷プレビューのリソースファイルafxprint.rcをインクルードされていないのが原因です。

ダイアログベースの場合は、仕様的にインクルードされていないそうです。

ドキュメント/ビューベースでMFCのスタティックライブラリをリンクする場合は、何らかの原因でafxprint.rcファイルがインクルードされないで、BOOL AFXAPI _AfxCheckDialogTemplate(LPCTSTR lpszResource, BOOL bInvisibleChild)からFALSEを返してしまいます。

解決の方法としては、印刷プレビューに関係するafxprint.rcファイルをインクルードさせるように、自分のプロジェクトの中のリソースファイルを修正します。2箇所の修正が必要です。

1.「3 TEXTINCLUDE」というセクションにあるafxres.rcの下にafxprint.rcを追加します。

BEGIN
... ...
"#include ""afxres.rc"" // 標準コンポーネント\r\n"

"#include ""afxprint.rc"" // printing/print preview resources\r\n"
"#endif\r\n"
"\0"
END


2.リソースファイルの最後のところに、もう一度、afxprint.rcをインクルードします。

#include "afxres.rc" // 標準コンポーネント
#include "afxprint.rc" // printing/print preview resources