ペンの選択について – プログラミング – Home

通知
すべてクリア

[解決済] ペンの選択について


たっく
 たっく
(@たっく)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

いつもお世話になります。
開発環境はVC++6.0、SDI、OS:windows98です。

OnDraw関数で座標(1000~2000ぐらい)を取得して、
線と文字を描写させるためにOnDraw関数以下のように記述しています。

void C***View::OnDraw(CDC* pDC)
{
<省略>
  CFont Font;
Font.CreateFont(**,**,**,**,・・・・);
CFont*pOldFont = (CFont*) pDC->SelectObject(&Font);

  for(i=0,i<gl_zahyou; i++){
(ここで座標に線を描写しています)
//座標に文字を出力する
    pDC->TextOut(point.x,point.y,text)//pointはCPoint、textはCStringです。
}
pDC->SelectObject(pOldFont);
}

ここまではうまくいきました。
次に文字を線の角度に合わせて文字の角度をつけようとして以下のようにしました。
void C***View::OnDraw(CDC* pDC)
{
<省略>
  CFont Font;
Font.CreateFont(**,**,**,**,・・・・);

  for(i=0,i<gl_zahyou; i++){
   Font.CreateFont(**,**,**,**,・・・・);
   CFont*pOldFont = (CFont*) pDC->SelectObject(&Font);
(ここで座標に線を描写しています)
//座標に文字を出力する
    pDC->TextOut(point.x,point.y,text)//pointはCPoint、textはCStringです。
}
pDC->SelectObject(pOldFont);
}

コンパイルして実行するとプログラムが止まってしまいます。
(Font.CreateFontのところでとります。)
本をよんでも解決方法がなくて困っています。
どなたかアドバイスお願いします。


引用未解決
トピックタグ
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 188
 

CFont::CreatePointFontのヘルプを見ましたか?

作ったら削除しましょう

修正するとしたらこんな感じですね

void C***View::OnDraw(CDC* pDC)
{
<省略>
  CFont Font;

  for(i=0,i<gl_zahyou; i++){

   Font.CreateFont(**,**,**,**,・・・・);
   CFont*pOldFont = (CFont*) pDC->SelectObject(&Font);
(ここで座標に線を描写しています)
//座標に文字を出力する
    pDC->TextOut(point.x,point.y,text)//pointはCPoint、textはCStringです。
    pDC->SelectObject(pOldFont);
    Font.DeleteObject();
}
}


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 188
 

あっ訂正(^^;

誤)CFont::CreatePointFontのヘルプを見ましたか?
正)CFont::CreateFontのヘルプを見ましたか?


返信引用
たっく
 たっく
(@たっく)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

不良PGさんありがとうございます。
DeleteObjectで削除していたんですが、
位置がずれていました。。。単純ミスです。
void C***View::OnDraw(CDC* pDC)
{
<省略>
  CFont Font;

  for(i=0,i<gl_zahyou; i++){

   Font.CreateFont(**,**,**,**,・・・・);
   CFont*pOldFont = (CFont*) pDC->SelectObject(&Font);
(ここで座標に線を描写しています)
//座標に文字を出力する
    pDC->TextOut(point.x,point.y,text)//pointはCPoint、textはCStringです。
    pDC->SelectObject(pOldFont);
}
  Font.DeleteObject();
}
お騒がせいたしました。。。

でもfor文のなかでフォントを持ち替えると相当動作が遅くなりますね。
なにか良い方法ご存じないですか?


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 188
 

ケースバイケースだと思いますが

先にフォントを作って置いて
for文の中で切り替えれば、多少は速くなるでしょう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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