画面サイズなどのデバイス情報を取得


 画面などのデバイス情報を取得するには、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 );
	//----------------------------------------↑
}