PrintPreview为一片空白
编号:QA000567
建立日期: 1999年3月1日 最后修改日期:1999年3月1日
所属类别:
邢旭峰:
vc++6.0
pwin95
我是个初学者,在编程中遇到如下的打印问题:
利用wizard,第一步,PROJECTS中为MFC APPWIZARD(EXE)platform为win32,后ok,第一步为single document data; 第二步为database with file support;第三步中菜单中选择有打印相关功能。以后为默认值,除base class为cformview。进行数据链结,初始化,文档类与视类连接后,执行程序,输入数据,进入print preview,为空白,请问可能什么地方没做好,谢谢!!
回答:
这个问题是这样的:
1:APPWIZARD中的打印预览是在消息映射中做了如下调用:
BEGIN_MESSAGE_MAP(CTestView, CRecordView)
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()
程序中ONFILEPRINTPREVIEW()方法首先调用CVIEW::DOPRINTPREVIEW()创建一个特定的CVIEW派生打印预览对象,该对象由CPREVIEWVIEW类派生,然后调用CFRAMEWND::ONSETPREVIEWMODE();
2:如果你想实现APPWIZARD中的打印预览,那么你必须重载CVIEW类中的ONDRAW()方法,并且在该方法中自己来做打印预览,具体做法是:根据文档大小来输出文字,可用CVIEW::TEXTOUT()函数,不过要自己定位。
3:另外,你可以重载CMAINFRAME的ONSETPREVIEWMODE()函数,来实现自定义的打印预览。
此问题由ChenTao回答。
| |
|
|
| |
|
|