こんばんわ。竹内 秀憲です。

あひる様、回答ありがとうございました。おかげさまで、
1週間の疑問が解けました。
CEditの場合は、SetFontを使うんですね。

>そもそもOnDraw内では、なるべくオブジェクトの生成・消滅
>を行うべきではないと思いますよ
 貴重な助言ありがとうございます。本にはこういことは明言されてなかったんで
 気づきませんでした。
 


----- Original Message -----
送信者 : "あひる" <a...@gao.hot.co.jp>
宛先 : <v...@mserver.catnet.ne.jp>
送信日時 : 2000年1月27日
件名 : [vcpp 00037029] Re: CEditクラスでのフォントの変更の仕方について


> 竹内 秀憲 様
>  こんにちは。あひる です。
>
>         Thu, 27 Jan 2000 21:48:24 +0900 の
>         [vcpp 00037027] CEditクラスでのフォントの変更の仕方について
>         の発言に関してですが.....
>
> 》やっていることと、現象は、
> 》CViewクラスのOnDraw関数で、最初のみCEditクラスを作成し、
> 》テキストファイルを読み込んだときに、フォントを変更して表示
> 》させるのですが、SetWindowText関数の直前まではフォントが
> 》変更されているようですが、SetWindowText関数で表示される
> 》文字は、起動時のフォントのままになってしまします。
> CEditに対してできるかは、確かではありませんが、
>
> 》↓ソースはこの様にしています。
> 》void CFile_readView::OnDraw(CDC* pDC)
> 》{     static bool flg = false;
> 》     CFile_readDoc* pDoc = (CFile_readDoc*)GetDocument();
> 》     pview =  pDoc->p2; file://読み込んだテキストの参照
> 》     if(flg){
> 》          CFont new_font,*old_font;
> 》          CEdit* myED = (CEdit*)GetDlgItem(IDC_EDIT1);
> 》          new_font.CreatePointFont(100,"MS 明朝",pDC);
> 》          old_font= pDC->SelectObject(&new_font);
> 》          myED->SetWindowText((char*)pview);
> 》          pDC->SelectObject(old_font);
> 》     }
> 2点ほど。
> まずCFontをクラスメンバにして、破棄されない様にする。
> SelectObjectではなく、SetFontを使用する。
>
> そもそもOnDraw内では、なるべくオブジェクトの生成・消滅
> を行うべきではないと思いますよ。
>
> ------------------------------------------------------------
> all the time with a smile
> いつも笑顔で ahirugao がー >^
> mailto:a...@gao.hot.co.jp
> http://ahirugao.i.am/
>