エディットボックスに表示されているデータを印刷しているのですが、
印刷時にエディットボックスでは各行きれいにそろっているのに、印刷するとスペースの分ずれてしまいます。
下に例を書きます
~初期処理省略~
// 印刷用フォントのセット
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ゴシックの全角半角が原因かと思い 印刷時のフォントをエディットのフォントと同じにすると
実行時にエラーになってしまいます。
大変困っておりますので どうかよろしくお願いします。
MS ゴシック というフォントはないですから、(可変ピッチの)別のフォントが生成されているはずです。
MS ゴシック とした場合にエラーになる原因を探るべきではないでしょうか?
> 生成されているはずです。
生成ではなくて選択というべきですかね。
kazumaさんありがとうございました。
ご指摘のとおりもう一度MS ゴシックがエラーになっている原因を追求しましたら、
解決しました。
私の思い違いで、グローバルに定義したCFONTのクラス変数でフォントを定義しようとしていました。
印刷用のCFONTのクラス変数でMS ゴシックを指定してやると、うまくいきました。
私の勘違いでご迷惑おかけして申し訳ありませんでした。。