|
■No49974 (とっちゃん さん) に返信
> その場だけの HDCを作り、GetDeviceCapsなどを利用してサイズを取得する。
↑たぶんこの方法だと思いますが、下記のかたちでできました。
BOOL CYUBIView::OnPreparePrinting(CPrintInfo* pInfo)
{
BOOL b = DoPreparePrinting(pInfo);
HDC hdc = pInfo->m_pPD->m_pd.hDC;
double h = (::GetDeviceCaps(hdc, HORZRES) + ::GetDeviceCaps(hdc, PHYSICALOFFSETX) * 2) * 25.4
/ ::GetDeviceCaps(hdc, LOGPIXELSX); // 横 1mm
double v = (::GetDeviceCaps(hdc, VERTRES) + ::GetDeviceCaps(hdc, PHYSICALOFFSETY) * 2) * 25.4
/ ::GetDeviceCaps(hdc, LOGPIXELSY); // 縦 1mm
return b;
}
得られるのが「用紙の種類」ではなく「用紙の寸法」になりましたが
今回はこちらのほうで好都合でした。
とっちゃんさん
ご指導ありがとうございました。
環境:VS2008 MFC
|