いつもお世話になっております。
下記のコードを記述しておりまして、
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で定義したデバイスに渡す方法が判りません。
どなたか教えていただけませんでしょうか?
もしかしたら、根本的に違っていたら指摘してください。よろしくお願いします。
こうすれば、まったく同じでしょう
>CDC *pDC = GetDC();
↓
CDC *pDC = CDC::FromHandle(hDC);
できました!
フォントの変更時に
CDC *pDC = CDC::FromHandle(hdcPrinter);
とする事で、デバイスを渡すことができるのですね!
不良PG さん、ありがとうございます。
デバイスを渡すと言うよりデバイスコンテキストのハンドルを
CDCクラスオブジェクトに関連付けたという事です
勘違いしてました。
なんだか、ただ記述してただけで、納得がいかなかったのですが、おかげで、納得しました。
ありがとうございます。
でも、理解に苦しんでおります。