www.pudn.com > scrnsaverTY23.zip > DrawScreen.cpp


#include "stdafx.h" 
#include  
#include  
 
//绘图坐标系,X方向总为Y方向的4/3倍。 
#define DRAW_SCREEN_CX	1024 
#define DRAW_SCREEN_CY	(DRAW_SCREEN_CX * 3 / 4) 
 
void SetAppMapMode(CWnd *pWnd, CDC *pDC); 
 
/************************************************************************************* 
//函数:DrawScreen 
//绘图主函数 
*************************************************************************************/ 
void DrawScreen(HWND hWnd) 
{ 
	HDC hDC = GetDC(hWnd); 
	CDC *pDC = CDC::FromHandle(hDC); 
	CWnd *pWnd = CWnd::FromHandle(hWnd); 
	 
	//设置坐标映射模式 
	SetAppMapMode(pWnd, pDC); 
	 
	ReleaseDC(hWnd, hDC); 
 
} 
 
/************************************************************************************* 
//函数:SetAppMapMode 
//设置坐标映射模式,并将坐标原点移至屏幕中央。 
*************************************************************************************/ 
void SetAppMapMode(CWnd *pWnd, CDC *pDC) 
{ 
	CRect rect; 
	pWnd->GetWindowRect(&rect); 
 
	pDC->SetMapMode(MM_ISOTROPIC); 
	pDC->SetWindowExt(DRAW_SCREEN_CX, DRAW_SCREEN_CY); 
	pDC->SetViewportExt(rect.Width(), -rect.Height()); 
	pDC->SetViewportOrg(rect.Width() / 2 , rect.Height() / 2); 
	 
}