エディットの表示と印刷物の相違 – プログラミング – Home

エディットの表示と印刷物の相違
 
通知
すべてクリア

[解決済] エディットの表示と印刷物の相違


けん★
 けん★
(@けん★)
ゲスト
結合: 23年前
投稿: 28
Topic starter  

エディットボックスに表示されているデータを印刷しているのですが、
印刷時にエディットボックスでは各行きれいにそろっているのに、印刷するとスペースの分ずれてしまいます。

下に例を書きます

~初期処理省略~
// 印刷用フォントのセット
CFont m_font; // フォントクラス変数

// 印刷用フォントサイズの設定
m_font.CreatePointFont(480, MS ゴシック);

// 印刷用フォントのセット
CFont* poldfont=(CFont*)pDc->SelectObject(m_font);

// 印刷処理
for (int nPage = nFromPage; nPage <= nToPage; nPage++)
{
     dc.StartPage();
CRect rcDraw( 0, 0,
dc.GetDeviceCaps( HORZRES ),
dc.GetDeviceCaps( VERTRES ) );

// 印刷される文字列をセットする
dc.DrawText( cPrintWork[nPage - 1], -1, rcDraw, DT_WORDBREAK );

}
~後処理省略~

で、cPrintWork[nPage -1] に たとえば 123\r\n12 123とかいう文字列をセットすると
エディットボックスでは
123
12 123

とならんで表示されるのですが、
印刷すると
123
12 123
こんな感じにずれてしまいます。
ちなみにエディットボックスのフォントは m_Font.CreatePointFont(140,MS ゴシック);
で、印刷時のフォントは      m_font.CreatePointFont(480, MS ゴシック);
です。
MSゴシックの全角半角が原因かと思い 印刷時のフォントをエディットのフォントと同じにすると
実行時にエラーになってしまいます。

大変困っておりますので どうかよろしくお願いします。


引用未解決
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

MS ゴシック というフォントはないですから、(可変ピッチの)別のフォントが生成されているはずです。
MS ゴシック とした場合にエラーになる原因を探るべきではないでしょうか?


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

> 生成されているはずです。
生成ではなくて選択というべきですかね。


返信引用
けん★
 けん★
(@けん★)
ゲスト
結合: 23年前
投稿: 28
Topic starter  

kazumaさんありがとうございました。

ご指摘のとおりもう一度MS ゴシックがエラーになっている原因を追求しましたら、
解決しました。
私の思い違いで、グローバルに定義したCFONTのクラス変数でフォントを定義しようとしていました。
印刷用のCFONTのクラス変数でMS ゴシックを指定してやると、うまくいきました。

私の勘違いでご迷惑おかけして申し訳ありませんでした。。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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