エディットの表示と印刷物の相違

[戻る]
けん★ 2001/11/28(水) 12:16:10
エディットボックスに表示されているデータを印刷しているのですが、
印刷時にエディットボックスでは各行きれいにそろっているのに、印刷するとスペースの分ずれてしまいます。

下に例を書きます

〜初期処理省略〜
    //    印刷用フォントのセット
    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\n"12   123"とかいう文字列をセットすると
エディットボックスでは
     123
12   123

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

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

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

kazuma 2001/11/28(水) 13:26:03
> 生成されているはずです。
生成ではなくて選択というべきですかね。

けん★ 2001/11/28(水) 13:49:21
[[解決]]
kazumaさんありがとうございました。

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

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

古いスレッドには追加発言できません。