2012-05-01 10 views
1

私のWTLアプリで静的なラベルのフォントを変更しようとしています。 CreatePointFontはNULLを返します。これはなぜでしょうか? CreatePointFont()CreatePointFont()はなぜ私のためにNULLを返しますか?

CFont font; 

font.CreatePointFont(120, _T("Segoe UI")); 
text.Attach(GetDlgItem(IDC_MAINTEXT)); 
text.SetFont(font); 
+0

使用しているCreatePointFontの亜種のMSDNページへのリンクがありますか?私が見つけた唯一のものは、それが3つのパラメータを取ると言い、3番目はDCです。あなたは適切なDCを渡していますか? –

答えて

1

を列挙するために使用することができますがCreatePointFontはNULLを返していることを確認していますか?

フォントを設定するには、メモリに残しておく必要がありますが、コードスニペットからは、変数fontが設定された直後に破棄されるように見えます。

textオブジェクト(MFCオブジェクトを使用している場合など)のライフタイム中に削除されない変数を宣言します。

+0

それが原因でした。私のOnInitDialogが終了すると、 'font'変数は破壊されました。 – user555

+0

"フォントを設定するにはメモリに残っていなければなりません" Andrew、私の一日をちょうど作ったよ! :) – fduff

1

nPointSize引数は、おそらく12月10日= 1.2ポイントのあなたのサイズが小さすぎる、ポイントの割にあります。おそらく120に合格することを意味します。

これをビジネスアプリケーションに使用している場合は、ban comic sansウェブサイトにアクセスすることもできます。

+0

あなたの右のサイズは間違っていますが、それでもNULLを返します。そして、コミック・サンズについては、私が持っていたどんなフォントでも取りました。私は漫画のサンが使用されるべきではないことに同意する。 – user555

+0

多分、AtlGetControlFont()もNULLを返すという事実と関係がありますか? – user555

1

ドキュメントは、それはあなたがそれはEnumFontFamilies機能によって表示されている場合、マシン

チェック(引用documentationを形成)に名前のフォントを持っていない条件を失敗にあまりにも冗長ではありませんが、私の推測:

のWindows EnumFontFamilies機能は、現在利用可能なすべてのフォント

+0

私はComic SansからArialにインストールされているすべてのフォントを試してみました。 – user555

関連する問題