⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setline.cpp

📁 VS2005 MFC 实现的画图程序
💻 CPP
字号:
// SetLine.cpp : 实现文件
//

#include "stdafx.h"
#include "GDraw.h"
#include "SetLine.h"


// CSetLine 对话框

IMPLEMENT_DYNAMIC(CSetLine, CDialog)

CSetLine::CSetLine(CWnd* pParent /*=NULL*/)
	: CDialog(CSetLine::IDD, pParent)
	, m_x1(10)
	, m_y1(100)
	, m_x2(200)
	, m_y2(205)
	, m_lf(0)
	, m_size(0)
	, color(0,0,0)
{

	EnableAutomation();


}

CSetLine::~CSetLine()
{
}

void CSetLine::OnFinalRelease()
{
	// 释放了对自动化对象的最后一个引用后,将调用
	// OnFinalRelease。基类将自动
	// 删除该对象。在调用该基类之前,请添加您的
	// 对象所需的附加清除代码。

	CDialog::OnFinalRelease();
}

void CSetLine::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_x1, m_x1);
	DDV_MinMaxInt(pDX, m_x1, 0, 1024);
	DDX_Text(pDX, IDC_y1, m_y1);
	DDV_MinMaxInt(pDX, m_y1, 0, 768);
	DDX_Text(pDX, IDC_x2, m_x2);
	DDV_MinMaxInt(pDX, m_x2, 0, 1024);
	DDX_Text(pDX, IDC_y2, m_y2);
	DDV_MinMaxInt(pDX, m_y2, 0, 768);
	DDX_CBIndex(pDX, IDC_shape, m_lf);
	DDX_CBIndex(pDX, IDC_wide, m_size);
	
	
}


BEGIN_MESSAGE_MAP(CSetLine, CDialog)
	ON_BN_CLICKED(IDC_Color, &CSetLine::OnBnClickedColor)
	ON_WM_PAINT()
	ON_STN_CLICKED(IDC_Color, &CSetLine::OnStnClickedColor)
END_MESSAGE_MAP()

BEGIN_DISPATCH_MAP(CSetLine, CDialog)
END_DISPATCH_MAP()

// 注意: 我们添加 IID_ISetLine 支持
//  以支持来自 VBA 的类型安全绑定。此 IID 必须同附加到 .IDL 文件中的
//  调度接口的 GUID 匹配。

// {0AFA55B1-1211-409A-9344-D7310196A13B}
static const IID IID_ISetLine =
{ 0xAFA55B1, 0x1211, 0x409A, { 0x93, 0x44, 0xD7, 0x31, 0x1, 0x96, 0xA1, 0x3B } };

BEGIN_INTERFACE_MAP(CSetLine, CDialog)
	INTERFACE_PART(CSetLine, IID_ISetLine, Dispatch)
END_INTERFACE_MAP()


// CSetLine 消息处理程序

BOOL CSetLine::OnInitDialog()
{
	CComboBox *pCB=(CComboBox* ) GetDlgItem(IDC_wide);
	wchar_t buf[2]=L"1";
	for(int i=0;i<9;i++)
	{
		pCB->AddString(buf);
		buf[0]++;
	}
	pCB->AddString (L"10");
	pCB->SetCurSel (0);
	pCB->Clear ();
	pCB=(CComboBox* ) GetDlgItem(IDC_shape);
	pCB->AddString (L"实线");
	pCB->AddString (L"点虚线");
	pCB->AddString (L"点横线");
	pCB->SetCurSel (0);
	pCB->Clear ();
//	SetDlgItemInt(IDC_x1,10);
//	SetDlgItemInt(IDC_y1,20);
//	SetDlgItemInt(IDC_x2,100);
//	SetDlgItemInt(IDC_y2,200);

	

	CDialog::OnInitDialog();


	CWnd *pWnd=GetDlgItem (IDC_Color);
	CDC *pDC=pWnd->GetDC ();
	pDC->FillRect (CRect(0,0,95,31),&CBrush(color .ToCOLORREF ()));
	pWnd->Invalidate ();
	ReleaseDC(pDC);

	// TODO:  在此添加额外的初始化

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CSetLine::OnBnClickedColor()
{
	// TODO: 在此添加控件通知处理程序代码
	CColorDialog ccd;
	COLORREF col;
	if(ccd.DoModal()==IDOK)
	{
		col=ccd.GetColor ();
		color.SetFromCOLORREF (col);
	}
	CWnd *pWnd=GetDlgItem (IDC_Color);
	CDC *pDC=pWnd->GetDC ();
	pDC->FillRect (CRect(0,0,95,31),&CBrush(color .ToCOLORREF ()));
	pWnd->Invalidate ();
	ReleaseDC(pDC);
	
}

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

void CSetLine::OnStnClickedColor()
{
	// TODO: 在此添加控件通知处理程序代码
}

⌨️ 快捷键说明

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