circle.cpp

来自「VS2005 MFC 实现的画图程序」· C++ 代码 · 共 76 行

CPP
76
字号
// Circle.cpp : 实现文件
//

#include "stdafx.h"
#include "GDraw.h"
#include "Circle.h"


// CCircle 对话框

IMPLEMENT_DYNAMIC(CCircle, CDialog)

CCircle::CCircle(CWnd* pParent /*=NULL*/)
	: CDialog(CCircle::IDD, pParent)
	, m_x(150)
	, m_y(100)
	, m_r(60)
	, m_size(8)
{
 color=RGB(0,0,0);
}

CCircle::~CCircle()
{
}

void CCircle::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_x);
	DDV_MinMaxInt(pDX, m_x, 1, 1024);
	DDX_Text(pDX, IDC_EDIT2, m_y);
	DDV_MinMaxInt(pDX, m_y, 1, 768);
	DDX_Text(pDX, IDC_EDIT5, m_r);
	DDV_MinMaxInt(pDX, m_r, 0, 1024);
	DDX_Text(pDX, IDC_EDIT3, m_size);
	DDV_MinMaxInt(pDX, m_size, 0, 1024);
}


BEGIN_MESSAGE_MAP(CCircle, CDialog)
	  ON_BN_CLICKED(IDC_SSC, &CCircle::ONBK)
	  ON_WM_PAINT()
END_MESSAGE_MAP()

void CCircle::ONBK()
{
	CColorDialog ccd;
	COLORREF col;
	if(ccd.DoModal()==IDOK)
	{
		col=ccd.GetColor ();
	 //   color.SetFromCOLORREF (col);	
		color=col;
	}
	CWnd *pWnd=GetDlgItem (IDC_SSC);
	CDC *pDC=pWnd->GetDC ();
	pDC->FillRect (CRect(0,0,100,90),&CBrush(color));
	pWnd->Invalidate ();
	ReleaseDC(pDC);
}

// CCircle 消息处理程序

void CCircle::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	// TODO: 在此处添加消息处理程序代码
	// 不为绘图消息调用 CDialog::OnPaint()
    CWnd *pWnd=GetDlgItem (IDC_SSC);
	CDC *pDC=pWnd->GetDC ();
	pDC->FillRect (CRect(0,0,100,90),&CBrush(color));
	pWnd->Invalidate ();
	ReleaseDC(pDC);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?