www.pudn.com > VCYXSJRM.rar > canvasFrame.cpp


// canvasFrame.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "canvasr.h" 
#include "canvasFrame.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// canvasFrame 
 
IMPLEMENT_DYNCREATE(canvasFrame, CFrameWnd) 
 
CBrush brush[21];  
CPen newPen,*oldPen; 
 
canvasFrame::canvasFrame() 
{ 
	RECT rect; 
	Create(NULL,"绘图窗口"); 
	CClientDC dc(this); 
	int width = dc.GetDeviceCaps(HORZRES); 
	int height = dc.GetDeviceCaps(VERTRES); 
	GetWindowRect( &rect ); 
	width = ( width - ( rect.right - rect.left ))/2 ; 
	height = (height - (rect.bottom - rect.top ))/2 ; 
	MoveWindow( width , height , (rect.right - rect.left ) , (rect.bottom - rect.top ) ,true); 
 
	int i=0,c,s; 
	COLORREF color[3] = {RGB(255,0,0),RGB(0,255,0),RGB(0,0,255)}; 
	int style[6] = {HS_VERTICAL,HS_HORIZONTAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_BDIAGONAL};  
	newPen.CreatePen(PS_DASH,5,RGB(50,50,50));   //建立新画笔 
	for(c=0;c<3;c++)      //建立单色画刷 
	{ 
		brush[i].CreateSolidBrush(color[c]); 
		i++; 
	} 
	for(s=0;s<6;s++)      //建立阴影画刷 
		for(c=0;c<3;c++) 
		{ 
			brush[i].CreateHatchBrush(style[s],color[c]); 
			i++; 
		} 
} 
 
canvasFrame::~canvasFrame() 
{ 
} 
 
 
BEGIN_MESSAGE_MAP(canvasFrame, CFrameWnd) 
	//{{AFX_MSG_MAP(canvasFrame) 
	ON_WM_PAINT() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// canvasFrame message handlers 
 
void canvasFrame::OnPaint() 
{ 
	CPaintDC dc(this);                 //响应WM_PAINT消息的DC 
	int x1=10,y1=10,x2=70,y2=70;	 
	oldPen = dc.SelectObject(&newPen); //选择新画笔 
	for(int i=0;i<21;i++)              //绘制填充区块 
	{ 
		dc.SelectObject(&brush[i]);    //选择画刷 
		dc.Ellipse(x1,y1,x2,y2);       //绘制圆形 
		if((i+1)%3==0) 
		{ 
			x1+=80; 
			x2+=80; 
			y1=10; 
			y2=70; 
		} 
		else 
		{ 
			y1+=100;                            
			y2+=100; 
		} 
	} 
	dc.SelectObject(oldPen);           //恢复旧画笔 
}