超初心者です。エディットコントロールに大きな文字を表示したいのですが、下のコー
ディングだとカーソルしか大きくなりません。MSDN等を見てもよくわかりません。
どなたかご教示の程よろしくお願いします。
CFont myFont;
static LOGFONT myFontSet;
myFontSet.lfHeight = 100;
myFontSet.lfWidth = 0;
myFontSet.lfWeight = FW_BOLD;
myFontSet.lfCharSet = SHIFTJIS_CHARSET;
strcpy(myFontSet.lfFaceName,MS P明朝);
myFont.CreateFontIndirect(&myFontSet);
m_ed1.SetFont(&myFont);
myFont.DeleteObject();
> 超初心者です。
一応いっておきますが、免罪符にはなりませんよ。
>発言される前に「使用上の注意」を必ずお読み下さい。
です。環境を書きましょう。
で、
これだとフォントのインスタンスがここのスコープを抜けると消えちゃうから
いざ書くときにはそのフォントは存在しないってことになってしまいます。
フォントの寿命をもうちょっと長くしてあげないといけません。
これはダイアログ上でしょうか?
だとするなら、ダイアログのメンバにもたせる、等します。
さっそくありがとうございます。すいません。環境はWindowsXP pro、VC6.0です。
これは、ダイアログではなくCFormViewで作成しています。申し訳ないのです
が、フォントの寿命をもうちょっと長くするというのはどうすれば、いいのでしょう
か。
フォーム・クラスのメンバにしてはいかがか?
変数の寿命についてならC++の入門書を読めば書いていると思うので
本を持っているのであれば、確認してみてください。
グローバル、クラスメンバー、ローカル等の説明がどこかに載っていると
思います。スコープという単語が使われているかもしれません。
要はその変数がどの時点まで存在すればいいのかを考えれば、
その変数を何処に持たせればいいのかがはっきりすると思います。
今回ならCFormViewが表示に使用しているウインドウですから
そのウインドウが存在している間はフォントも存在していてくれないと
うまくいきませんよね。
それならCFormViewクラスと同じ寿命にするのが一番いいと思います。
その場合、フォントはCFormViewクラスのメンバー変数にした方が
一番リーズナブルだと言うことになると思います。
もし、C++言語の入門書をお持ちで無いのであれば、
VC++の本とは別にC++言語の入門書を買われて少なくとも一度は通読される事を
お勧めします。
皆さんのおかげで解決できました。ありがとうございました。