Kengo Jinnoさん、メールありがとうございます。
西井傑 @ 静岡です。

神野さん、お返事ありがとうございます。

>|    fr.hdc = hdc;
>|    fr.hdcTarget = hdc;
>
>の処理が抜けているように思えますが、どうでしょうか?

上記のご指摘通り、デバイスコンテキストのハンドルを指定していなかっっただけでした。
お手数をおかけして申し訳ございませんでした。


さらに、「リッチエディットでの印刷」について、みなさんに質問があります。
フレームワークを利用し、
1.印刷時におけるフォントの変更
2.ファイル名をヘッダ領域に印刷
3.用紙のサイズにあわせた印刷
を行いたいと思っています。

現段階では1、2はクリア出来ているのですが、
3番が何ともし難い状況です。

FORMATRANGE に値を設定し、プリンタ、印刷用紙の大きさに
関わらず印刷したいと思っているのですが、
望むように動いてくれません。

例えば、複数ページ印刷で、印刷用紙をA4→B5に変更したときときです。
「印刷プレビュー」で見ている限り、
用紙はB5になっているようなのですが、テキストの1ページ分が
A4のときと同じになっているのです。

(上記のような内容で理解していただけますか?)

1ページ分のテキストの出力量はFORMATRANGE を設定しただけでは
駄目なのでしょうか?
もしそうだとしたら、どのようにしたらいいのでしょうか?

ちなみに、FORMATRANGEの部分を削除しても、
CRichEditView::OnPrint(pDC, pInfo);
がある限り同等の動きをしました。


下に、ソースの一部を載せておきます。
よろしくお願いします。


--------------------------------------
FORMATRANGEの設定はOnPrepareDC() で行っています。
値は「猫でも・・・ 第137章」とおなじです。

C***View::OnPrint() //C***View はCRichEditViewの派生クラス
{
if(fr.chrg.cpMin < fr.chrg.cpMax)
{
LONG lNextMin = RCtrl.FormatRange(&fr, TRUE);
pInfo->m_nCurPage;
pDC->StartPage();
RCtrl.DisplayBand(&(fr.rc));
fr.chrg.cpMin = lNextMin;
pDC->EndPage();
}
CRichEditView::OnPrint(pDC, pInfo);
}
---------------------------------------

ご教授いただけたら幸いです
------
西井傑
q...@ipc.shizuoka.ac.jp