热情软件屋

 

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回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio