VC++6.0の印刷プレビュー – プログラミング – Home

通知
すべてクリア

VC++6.0の印刷プレビュー


ぶいしー
 ぶいしー
(@ぶいしー)
ゲスト
結合: 17年前
投稿: 19
Topic starter  

以下の手順を行うと、印刷プレビューの拡大でASSERTするのですが、
誰かわかる方、回避方法等を教えていただけませんか?

(1)VC++6.0で、MFC AppWizard(exe)で全てデフォルトで作成する。
(2)そのままコンパイル・実行する。
(3)画面を最大化する。
(4)[ファイル]-[プリンタの設定]で、印刷の向きを[横]にする。
(5)[ファイル]-[印刷プレビュー]で、プレビュー画面(白紙ですが)を表示させる。
(6)[拡大]ボタンで、拡大をしていくと、以下の部分でASSERTしてしまう。
void CScrollView::ScrollToDevicePosition(POINT ptDev)
{
ASSERT(ptDev.x >= 0);
ASSERT(ptDev.y >= 0);  ← ここでASSERTする
....
どうも、ptDev.yに負の値が入っているからのよう。

上記で、画面を最大化しないとこの現象は発生しないようです。
また、MDIでもSDIでも発生してしまう。
環境的には、以下のとおりです。
・VC++6.0 SP6
・WindowsXP Professional SP2

すいませんが、よろしくお願いします。


引用解決済
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

再現しませんでした。取り急ぎ報告だけ。
・VC++6.0 SP6
・WindowsXP Professional SP3


返信引用
ぶいしー
 ぶいしー
(@ぶいしー)
ゲスト
結合: 17年前
投稿: 19
Topic starter  

もしかしたら、環境に影響されているのかもしれないと思い、
以下のようなテストをしたらある状況で発生するようです。

(1)発生する場合:
・解像度:1280×1024
・用紙サイズ:A4

(2)以下の場合は発生しなかった
・解像度:1280×1024
・用紙サイズ:A3

(3)以下の場合は発生しなかった
・解像度:1024×768
・用紙サイズ:A4

何か、解像度と用紙サイズの関係で条件があるようなのですが、、。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

デフォルトプリンタは信頼できるものですか?


返信引用
ぶいしー
 ぶいしー
(@ぶいしー)
ゲスト
結合: 17年前
投稿: 19
Topic starter  

デフォルトプリンタはRICOH製ですが、通常のページプリンタです。
また、プリンタをPDFにしても同様な現象が発生します。

なにか、環境的なものなんでしょうか?


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

ScrollToDevicePositionの説明に
 > ビューは、指定した位置がウィンドウの左上隅になるようにスクロールされます。
 > このメンバ関数は、ビューが伸縮モードのときは呼び出さないでください。
とあります。
印刷時、ビューが伸縮モードののときに「ScrollToDevicePosition」
を使っていませんか?


返信引用
ぶいしー
 ぶいしー
(@ぶいしー)
ゲスト
結合: 17年前
投稿: 19
Topic starter  

MFCのウィザードで作成したのみで、ソースに一切修正を加えてない状態です。

ScrollToDevicePositionは、MFCのなかから、コールしている部分なので、
ビューが伸縮モードかどうかが不明です。

ビューが伸縮モードかどうかを調べる方法がよく分からないので、
もし、知っていたら教えてください。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

僕もCScrollViewの印刷はあまりやったことないんで、
 CScrollViewのサンプルSCRIBBLEを参考にするといいです。

http://msdn.microsoft.com/ja-jp/library/f35t8fts.aspx


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました