テキストを印刷する時のフォントの変更方法を教えてください

[戻る]
クリリン 2002/02/22(金) 16:18:55
いつもお世話になっております。


下記のコードを記述しておりまして、

void CTestDlg::f_Print(){ <--作った関数です。
  char WorkChar[] = "テスト";
  HDC hdcPrinter;
    …省略
  hdcPrinterにプリンタ情報をセット
    …省略
  TextOut(hdcPrinter, xPrinter, yPrinter, WorkChar, strlen(WorkChar));
    …印刷処理(印刷はちゃんと出来ております)
}
として印刷をしているのですが、フォントのサイズを変更することができません。

フォントのサイズ変更は、
CDC *pDC = GetDC();
CFont tmpFont;
tmpFont.CreatePointFont(90,"MS ゴシック",pDC);// フォントサイズは9
pDC->SelectObject(&tmpFont);

と記述したらフォントが変更できるのはわかるのですが、
HDCで定義したデバイスに渡す方法が判りません。

どなたか教えていただけませんでしょうか?
もしかしたら、根本的に違っていたら指摘してください。よろしくお願いします。

不良PG 2002/02/22(金) 16:26:00
こうすれば、まったく同じでしょう

>CDC *pDC = GetDC();
↓
CDC *pDC = CDC::FromHandle(hDC);

クリリン 2002/02/22(金) 16:41:03
[[解決]]
できました!
フォントの変更時に
CDC *pDC = CDC::FromHandle(hdcPrinter);
とする事で、デバイスを渡すことができるのですね!

不良PG さん、ありがとうございます。

不良PG 2002/02/22(金) 16:49:00
デバイスを渡すと言うよりデバイスコンテキストのハンドルを
CDCクラスオブジェクトに関連付けたという事です

クリリン 2002/02/22(金) 16:54:03
勘違いしてました。
なんだか、ただ記述してただけで、納得がいかなかったのですが、おかげで、納得しました。
ありがとうございます。
でも、理解に苦しんでおります。

古いスレッドには追加発言できません。