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

📄 editarray.cpp

📁 表达式计算器。表达式中只能有圆括号、函数名、运算符、常数与变量。一、变量名的命名规则:1、可以是字符、或字符串 2、不能以数字开头 3、不能夹杂有空格、运算符或标点符号
💻 CPP
字号:
// EditArray.cpp: implementation of the CEditArray class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Computer.h"
#include "EditArray.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEditArray::CEditArray():m_width(100),m_height(20)
{m_Topleft=CPoint(0,0);}
BOOL CEditArray::Create(CPoint point,CWnd* pParentWnd,int width,int height,CStringResolution*formula,DWORD dwStyle)
{
	m_Topleft=point;
	m_width=width,m_height=height;
	int i;
	int num=formula->GetVariantTableSize();
	CPoint p=point;
	CSize size(width,height);
	const COperand* pOd=0;
	if(formula)
		pOd=formula->GetVariantTable();
	for(i=0;i<num;i++)
	{
		CEdit* pEdit=new CEdit;
		pEdit->Create(dwStyle,CRect(p,size),pParentWnd,2000+i);
		if(pOd)
			pEdit->SetWindowText(pOd[i].m_name+"=");
		m_EditArray.Add(pEdit);
		p.y+=height-1;
	}
	return TRUE;
}
BOOL CEditArray::Create(CPoint point,CWnd* pParentWnd,int width,int height,int num,DWORD dwStyle)
{
	m_Topleft=point;
	m_width=width,m_height=height;
	int i;
	CPoint p=point;
	CSize size(width,height);
	for(i=0;i<num;i++)
	{
		CEdit* pEdit=new CEdit;
		pEdit->Create(WS_BORDER|dwStyle,CRect(p,size),pParentWnd,2000+i);
		pEdit->SetWindowText("0");
		m_EditArray.Add(pEdit);
		p.y+=height-1;
	}
	return TRUE;
}
CEditArray::~CEditArray()
{
	for(int i=0;i<m_EditArray.GetSize();i++)
	{
		CEdit* pEdit=(CEdit*)m_EditArray.GetAt(i);
		delete pEdit;
	}
	m_EditArray.RemoveAll();
}

BOOL CEditArray::draw()
{
	for(int i=0;i<m_EditArray.GetSize();i++)
	{
		CEdit*pEdit=(CEdit*)m_EditArray.GetAt(i);
		pEdit->ShowWindow(SW_SHOW);
	}
	return TRUE;
}

BOOL CEditArray::desroy()
{
	for(int i=0;i<m_EditArray.GetSize();i++)
	{
		CEdit* pEdit=(CEdit*)m_EditArray.GetAt(i);
		delete pEdit;
	}
	m_EditArray.RemoveAll();
	return TRUE;
}

BOOL CEditArray::EnableWindow(BOOL b)
{
	for(int i=0;i<m_EditArray.GetSize();i++)
	{
		CEdit* pEdit=(CEdit*)m_EditArray.GetAt(i);
		pEdit->EnableWindow(b);
	}
	return b;
}

int CEditArray::GetWindowData(double *&data)
{
	int value=0;
	int num=m_EditArray.GetSize();
	if(num==0)
		return -1;
	data=new double[num];
	CString str;
	for(int i=0;i<num;i++)
	{
		CEdit*pEdit=(CEdit*)m_EditArray.GetAt(i);
		pEdit->GetWindowText(str);
		if(str.GetLength()==0&&value==0)
			value=i+1;
		data[i]=atof(str);
	}
	return value;
}

void CEditArray::Move(int x, int y)
{
	int num=m_EditArray.GetSize();
	m_Topleft.x+=x;
	m_Topleft.y+=y;
	x=m_Topleft.x;
	y=m_Topleft.y;
	CString str;
	for(int i=0;i<num;i++)
	{
		CEdit*pEdit=(CEdit*)m_EditArray.GetAt(i);
		pEdit->GetWindowText(str);
		pEdit->MoveWindow(x,y,m_width,m_height);
		pEdit->SetWindowText(str);
		y+=m_height-1;
	}
	draw();
}

int CEditArray::getHeight()
{
	return m_height;
}

int CEditArray::getHeightA()
{
	return (m_height-1)*m_EditArray.GetSize();
}

⌨️ 快捷键说明

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