固定ピッチフォントを表示させるには – プログラミング – Home

固定ピッチフォントを表示させるには
 
通知
すべてクリア

[解決済] 固定ピッチフォントを表示させるには


ささやん
 ささやん
(@ささやん)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

任意のデバイスコンテキストにTextOut関数で固定ピッチフォント「MSゴシック」を
描画したいのですが上手くいきません。

例えば、下記のようなコードでテキスト出力しても、2行目の「MSゴシック」が1行目の
「MSPゴシック」と全く同じに出力されてしまい固定ピッチフォントになりません。
関数エラーも出てないので、上手くいってるように見えるんですが...
やり方が悪いんでしょうか?教えて下さい。

CPaintDC dc(this); //デバイスコンテキスト
CFont new_font, *old_font;
int line_height = 15;

//1行目表示
new_font.CreatePointFont(90, MSPゴシック, &dc);//フォント作成
old_font = dc.SelectObject(&new_font); //フォント選択
dc.TextOut(0, line_height * 0, 01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ);
dc.SelectObject(&old_font); //元のフォント
new_font.DeleteObject();

//2行目表示
new_font.CreatePointFont(90, MSゴシック, &dc);//フォント作成
old_font = dc.SelectObject(&new_font); //フォント選択
dc.TextOut(0, line_height * 0, 01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ);
dc.SelectObject(&old_font); //元のフォント
new_font.DeleteObject();


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

フォントフェイス名が間違っているようですね.
MS ゴシックは「S」と「ゴ」の間に半角空白が必要です.

指定したフォントフェイス名が見つからない場合に
Windowsが適当なのをチョイスしている結果だと思います.

EnumFontFamilies等でMSPゴシックの方も正確なフェイス名を
ゲットした方がよいと思います.


返信引用
ささやん
 ささやん
(@ささやん)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

>kuさん
ご指摘の通り、フォントフェイス名の間違いで、半角空白を入れたらちゃんと表示されました。
コードを書き直してEnumFontFamiliesを使っても上手くいきました。

おかげで問題が解決しました、どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました