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

📄 indexdlg.cpp

📁 非常好的数学公式计算源代码
💻 CPP
字号:
// IndexDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MathExpr.h"
#include "IndexDlg.h"
#include "../../../MTParserLib/MTParser.h"

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

/////////////////////////////////////////////////////////////////////////////
// IndexDlg dialog


IndexDlg::IndexDlg(class MTParser *pParser, CWnd* pParent /*=NULL*/)
	: CDialog(IndexDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(IndexDlg)
	//}}AFX_DATA_INIT

	m_pParser = pParser;
}


void IndexDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(IndexDlg)
	DDX_Control(pDX, IDC_DEFINEDCONSTS, m_consts);
	DDX_Control(pDX, IDC_DEFINEDFUNCS, m_funcs);
	DDX_Control(pDX, IDC_DEFINEDOPS, m_ops);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(IndexDlg, CDialog)
	//{{AFX_MSG_MAP(IndexDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// IndexDlg message handlers

BOOL IndexDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	int nbOps = m_pParser->getNbDefinedOps();
	int nbFuncs = m_pParser->getNbDefinedFuncs();
	int nbConsts = m_pParser->getNbDefinedConsts();

	m_ops.InsertColumn(0, _T("Symbol"), LVCFMT_LEFT, 100);
	m_ops.InsertColumn(1, _T("Usage"), LVCFMT_LEFT, 180);
	m_ops.InsertColumn(2, _T("Description"), LVCFMT_LEFT, 320);

	m_funcs.InsertColumn(0, _T("Symbol"), LVCFMT_LEFT, 100);
	m_funcs.InsertColumn(1, _T("Usage"), LVCFMT_LEFT, 180);
	m_funcs.InsertColumn(2, _T("Description"), LVCFMT_LEFT, 320);

	m_consts.InsertColumn(0, _T("Symbol"), LVCFMT_LEFT, 120);
	m_consts.InsertColumn(1, _T("Value"), LVCFMT_LEFT, 200);	

	int t;

	LVITEM lvItem;
	lvItem.mask = LVIF_TEXT;
	
	for( t=0; t<nbOps; t++ )
	{
		lvItem.iItem = t;

		lvItem.iSubItem = 0;
		lvItem.pszText = (LPWSTR)m_pParser->getOp(t)->getSymbol();
		lvItem.iItem =  m_ops.InsertItem(&lvItem);
		
		lvItem.iSubItem = 1;
		lvItem.pszText = (LPWSTR)m_pParser->getOp(t)->getHelpString();
		m_ops.SetItem(&lvItem);

		lvItem.iSubItem = 2;
		lvItem.pszText = (LPWSTR)m_pParser->getOp(t)->getDescription();
		m_ops.SetItem(&lvItem);			
	}

	for( t=0; t<nbFuncs; t++ )
	{
		lvItem.iItem = t;

		lvItem.iSubItem = 0;
		lvItem.pszText = (LPWSTR)m_pParser->getFunc(t)->getSymbol();
		lvItem.iItem =  m_funcs.InsertItem(&lvItem);
		
		lvItem.iSubItem = 1;
		lvItem.pszText = (LPWSTR)m_pParser->getFunc(t)->getHelpString();
		m_funcs.SetItem(&lvItem);

		lvItem.iSubItem = 2;
		lvItem.pszText = (LPWSTR)m_pParser->getFunc(t)->getDescription();
		m_funcs.SetItem(&lvItem);			
	}	
	
	
	MTSTRING constName;
	MTDOUBLE constVal;
	CString constValStr;

	for( t=0; t<nbConsts; t++ )
	{
		lvItem.iItem = t;

		m_pParser->getConst(t, constName, constVal);
		constValStr.Format(_T("%f"), constVal);

		lvItem.iSubItem = 0;
		lvItem.pszText = (LPWSTR)constName.c_str();
		lvItem.iItem =  m_consts.InsertItem(&lvItem);
		
		lvItem.iSubItem = 1;
		lvItem.pszText = (LPWSTR)constValStr.GetBuffer(0);
		m_consts.SetItem(&lvItem);
				
	}	

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

⌨️ 快捷键说明

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