画面サイズなどのデバイス情報を取得
画面などのデバイス情報を取得するには、GetDeviceCapsを使用します。
GetDeviceCapsの詳細はMSDNを参照して下さい。
【::OnDraw(CDC* pDC)】
OnDrawでGetDeviceCapsを使用する場合は、デバイスコンテキストを引数として持っていますので
CDC::GetDeviceCaps
を使用することが出来ます。
【サンプル1】
このサンプルは、MFC AppWizardを使用して作成したSDIタイプです。
void CVc_g_getdevcapView::OnDraw(CDC* pDC)
{
CVc_g_getdevcapDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
//------------------------------------↓
//デバイスの情報を取得
int iBuffer;
char szBuffer[9];
CString strBuffer;
//画面の幅を取得
//(mm)
iBuffer = pDC->GetDeviceCaps(HORZSIZE);
strBuffer = "画面の幅(mm) = ";
itoa(iBuffer,szBuffer,10);
strBuffer += szBuffer;
pDC->TextOut(0, 0, strBuffer );
//(ピクセル)
iBuffer = pDC->GetDeviceCaps(HORZRES);
strBuffer = "画面の幅(ピクセル) = ";
itoa(iBuffer,szBuffer,10);
strBuffer += szBuffer;
pDC->TextOut(0, 50, strBuffer );
//画面の高さを取得
//(mm)
iBuffer = pDC->GetDeviceCaps(VERTSIZE);
strBuffer = "画面の高さ(mm) = ";
itoa(iBuffer,szBuffer,10);
strBuffer += szBuffer;
pDC->TextOut(0, 100, strBuffer );
//(ピクセル)
iBuffer = pDC->GetDeviceCaps(VERTRES);
strBuffer = "画面の高さ(ピクセル) = ";
itoa(iBuffer,szBuffer,10);
strBuffer += szBuffer;
pDC->TextOut(0, 150, strBuffer );
//----------------------------------------↑
}