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); }