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

📄 tname.cpp

📁 数据结构链表的演示程序
💻 CPP
字号:
// tname.cpp : implementation file
//

#include "stdafx.h"
#include "LandSoft.h"
#include "tname.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTypeName dialog



CTypeName::CTypeName(CWnd* pParent,CArray<RGBQUAD,RGBQUAD>& quads,
					 CArray<Types,Types>& blocks,BOOL evername,
					 int minarea,BOOL savetip)
:CDialog(CTypeName::IDD,pParent)
{
	m_ControlsNum=blocks.GetSize();
	m_Controls.SetSize(m_ControlsNum,-1);
	m_BlockTypes.Copy(blocks);
	m_Quads.Copy(quads);
	m_bEverName=evername;
	m_bOren8=TRUE;
	//{{AFX_DATA_INIT(CTypeName)
	m_MinArea = minarea;
	m_bSaveTip = savetip;
	//}}AFX_DATA_INIT
}

void CTypeName::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTypeName)
	DDX_Text(pDX, IDC_EDIT_AREA, m_MinArea);
	DDX_Check(pDX, IDC_CHECK_SAVE, m_bSaveTip);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTypeName, CDialog)
	//{{AFX_MSG_MAP(CTypeName)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_RADIO_4, OnRadio4)
	ON_BN_CLICKED(IDC_RADIO_8, OnRadio8)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTypeName message handlers

BOOL CTypeName::OnInitDialog() 
{
	CDialog::OnInitDialog();

	for(int i=0;i<m_ControlsNum;i=i+2)		// 逐行绘制控件
	{
		CString id;
		id.Format("%d",i+1);
		m_Controls[i].m_ID.Create(id,WS_CHILD|WS_VISIBLE|SS_CENTER,
			CRect(18,93+15*i,33,116+15*i),this,MYID+3*i);
		m_Controls[i].m_Name.Create(ES_CENTER|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
			CRect(51,91+15*i,137,116+15*i),this,MYID+3*i+1);
		
		BYTE colorindex=m_BlockTypes[i].Val;
		CString value;
		value.Format("%d",colorindex);
		m_Controls[i].m_Value.Create(value,WS_CHILD|WS_VISIBLE|SS_CENTER,
			CRect(200,93+15*i,230,116+15*i),this,MYID+3*i+2);
		
		if((i+1)<m_ControlsNum)
		{
			CString id2;
			id2.Format("%d",i+2);
			m_Controls[i+1].m_ID.Create(id2,WS_CHILD|WS_VISIBLE|SS_CENTER,
				CRect(245+18,93+15*i,245+33,116+15*i),this,MYID+3*(i+1));
			m_Controls[i+1].m_Name.Create(ES_CENTER|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER,
				CRect(245+51,91+15*i,245+137,116+15*i),this,MYID+3*(i+1)+1);
		
			BYTE colorindex2=m_BlockTypes[i+1].Val;
			CString value2;
			value2.Format("%d",colorindex2);
			m_Controls[i+1].m_Value.Create(value2,WS_CHILD|WS_VISIBLE|SS_CENTER,
				CRect(245+200,93+15*i,245+230,116+15*i),this,MYID+3*(i+1)+2);

		}
	}
	
	if(m_bEverName)
		for (int j=0;j<m_ControlsNum;j++)
			m_Controls[j].m_Name.SetWindowText(m_BlockTypes[j].Name);

	m_OK.Create(_T("确定"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|WS_TABSTOP,
		CRect(100,110+15*i,210,138+15*i),this,IDOK);
	m_Cancel.Create(_T("取消"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|WS_TABSTOP,
		CRect(290,110+15*i,400,138+15*i),this,IDCANCEL);

	SetWindowPos(NULL,100,50,500,55+15*i+125,SWP_NOACTIVATE);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


void CTypeName::OnPaint()	// 绘制颜色方块
{
	CPaintDC dc(this); // device context for painting
	for(int i=0;i<m_ControlsNum;i=i+2)
	{
		CRect rect(155,91+15*i,180,116+15*i);
		BYTE colorindex=m_BlockTypes[i].Val;
		RGBQUAD rgbquad=m_Quads[colorindex];
		CBrush cbBack(RGB(rgbquad.rgbRed,rgbquad.rgbGreen,rgbquad.rgbBlue));
		dc.FillRect(rect,&cbBack);
		
		if((i+1)<m_ControlsNum)
		{
			CRect rect2(245+155,91+15*i,245+180,116+15*i);
			BYTE colorindex2=m_BlockTypes[i+1].Val;
			RGBQUAD rgbquad2=m_Quads[colorindex2];
			CBrush cbBack2(RGB(rgbquad2.rgbRed,rgbquad2.rgbGreen,rgbquad2.rgbBlue));
			dc.FillRect(rect2,&cbBack2);
		}
	}
}

void CTypeName::OnOK()		// 更新与控件相连的值
{
	for(int i=0;i<m_ControlsNum;i++)
		m_Controls[i].m_Name.GetWindowText(m_BlockTypes[i].Name);
	CDialog::OnOK();
}

void CTypeName::OnRadio4() 
{
	m_bOren8=FALSE;
}

void CTypeName::OnRadio8() 
{
	m_bOren8=TRUE;	
}

⌨️ 快捷键说明

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