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

📄 dlgvalues.cpp

📁 此 InterVolve 应用程序不仅介绍了使用 Microsoft 基础类的基本知识
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DlgValues.cpp : 实现文件
//

#include "stdafx.h"
#include "InterVolve.h"
#include "DlgValues.h"
#include ".\dlgvalues.h"
#include ".\Grid\GridCtrl.h"

// CDlgValues 对话框

IMPLEMENT_DYNAMIC(CDlgValues, CDialog)
CDlgValues::CDlgValues(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgValues::IDD, pParent)
{
	m_pGridCtrl = NULL;
}

CDlgValues::~CDlgValues()
{
	if(m_pGridCtrl)
	  delete m_pGridCtrl;
}

void CDlgValues::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CDlgValues, CDialog)
END_MESSAGE_MAP()


// CDlgValues 消息处理程序

void CDlgValues::OnOK()
{
	// TODO: 在此添加专用代码和/或调用基类

	//CDialog::OnOK();
}

void CDlgValues::OnCancel()
{
	// TODO: 在此添加专用代码和/或调用基类

	//CDialog::OnCancel();
}
void CDlgValues::InitGridValues(int N)
{
	 CRect rect;
	 GetClientRect(rect);
	 rect.bottom=rect.top+rect.Height()/4+10;
	 //CDC *pDC;



	if (m_pGridCtrl == NULL)
	{
		// 创建 Gridctrl 对象
		m_pGridCtrl = new CGridCtrl();
		if (!m_pGridCtrl) return;

		// 创建 Gridctrl 窗口
		CRect rect;
		GetClientRect(rect);
		
		m_pGridCtrl->Create(rect, this, 100);

		// 填充数据
		m_pGridCtrl->SetEditable(FALSE);
		m_pGridCtrl->EnableDragAndDrop(TRUE);

		try {
			m_pGridCtrl->SetRowCount(4);
			m_pGridCtrl->SetColumnCount(N+1);
			m_pGridCtrl->SetFixedRowCount(1);
			m_pGridCtrl->SetFixedColumnCount(1);
		}
		catch (CMemoryException* e)
		{
			e->ReportError();
			e->Delete();
			return;
		}

		// 填充每格数据
		GV_ITEM Item;
		Item.mask = DT_CENTER|DT_VCENTER|GVIF_TEXT|GVIF_FORMAT;
		Item.col = 0;
		Item.row = 0;
		Item.szText.Format(_T("m="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 1;
		Item.szText.Format(_T("x(m)="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 2;
		Item.szText.Format(_T("h(m)="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 3;
		Item.szText.Format(_T("y(m)="));
		m_pGridCtrl->SetItem(&Item);

		for (int row = 0; row < m_pGridCtrl->GetRowCount(); row++)
			for (int col = 1; col < m_pGridCtrl->GetColumnCount(); col++)
		{

			Item.row = row;
			Item.col = col;
			Item.mask = GVIF_TEXT|GVIF_FORMAT;
			int m = col-1;
			if (row == 0) {
				Item.nFormat = DT_CENTER|DT_VCENTER|DT_WORDBREAK;
				Item.szText.Format(_T("%d"),m); 
			}
			else if(row == 1)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("")); 			
			}
			else if(row == 2)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("")); 			
			}
			else if(row == 3)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("")); 			
			}
			m_pGridCtrl->SetItem(&Item);
		}
		m_pGridCtrl->AutoSize();
		//m_pGridCtrl->SetRowHeight(0, 3*m_pGridCtrl->GetRowHeight(0)/2);

	}
}
//N:Count of X
//x:x(n) y:y(n) h:h(n) 
void CDlgValues::SetGridValues(int N,double x[],double h[],double y[])
{
	 CRect rect;
	 GetClientRect(rect);
	 rect.bottom=rect.top+rect.Height()/4+10;
	 //CDC *pDC;



	if (m_pGridCtrl == NULL)
	{
		// 创建 Gridctrl 对象
		m_pGridCtrl = new CGridCtrl();
		if (!m_pGridCtrl) return;

		// 创建 Gridctrl 窗口
		CRect rect;
		GetClientRect(rect);
		
		m_pGridCtrl->Create(rect, this, 100);

		// 填充数据
		m_pGridCtrl->SetEditable(FALSE);
		m_pGridCtrl->EnableDragAndDrop(TRUE);
	}

		try {
			m_pGridCtrl->SetRowCount(4);
			m_pGridCtrl->SetColumnCount(N+1);
			m_pGridCtrl->SetFixedRowCount(1);
			m_pGridCtrl->SetFixedColumnCount(1);
		}
		catch (CMemoryException* e)
		{
			e->ReportError();
			e->Delete();
			return;
		}

		// 填充每格数据
		GV_ITEM Item;
		Item.mask = DT_CENTER|DT_VCENTER|GVIF_TEXT|GVIF_FORMAT;
		Item.col = 0;
		Item.row = 0;
		Item.szText.Format(_T("m="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 1;
		Item.szText.Format(_T("x(m)="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 2;
		Item.szText.Format(_T("h(m)="));
		m_pGridCtrl->SetItem(&Item);
		Item.row = 3;
		Item.szText.Format(_T("y(m)="));
		m_pGridCtrl->SetItem(&Item);
		for (int row = 0; row < m_pGridCtrl->GetRowCount(); row++)
			for (int col = 1; col < m_pGridCtrl->GetColumnCount(); col++)
		{

			Item.row = row;
			Item.col = col;
			Item.mask = GVIF_TEXT|GVIF_FORMAT;
			int m = col-1;
			if (row == 0) {
				Item.nFormat = DT_CENTER|DT_VCENTER|DT_WORDBREAK;
				Item.szText.Format(_T("%d"),m); 
			}
			else if(row == 1)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("%f"),x[m]); 			
			}
			else if(row == 2)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("%f"),h[m]); 			
			}
			else if(row == 3)
			{
				Item.nFormat = DT_RIGHT|DT_WORDBREAK;
				Item.szText.Format(_T("%f"),y[m]); 			
			}
			m_pGridCtrl->SetItem(&Item);
		}
		m_pGridCtrl->AutoSize();
		//m_pGridCtrl->SetRowHeight(0, 3*m_pGridCtrl->GetRowHeight(0)/2);


}
void CDlgValues::InitGrid()
{
    CRect rect;
		GetClientRect(rect);
		rect.bottom=rect.top+rect.Height()/4+10;

	CDC *pDC;

	if (m_pGridCtrl == NULL)
	{
		// 创建 Gridctrl 对象
		m_pGridCtrl = new CGridCtrl();
		if (!m_pGridCtrl) return;

		// 创建 Gridctrl 窗口
		CRect rect;
		GetClientRect(rect);
		
		m_pGridCtrl->Create(rect, this, 100);

		// 填充数据
		m_pGridCtrl->SetEditable(TRUE);
		m_pGridCtrl->EnableDragAndDrop(TRUE);

		try {
			m_pGridCtrl->SetRowCount(33);
			m_pGridCtrl->SetColumnCount(31);
			m_pGridCtrl->SetFixedRowCount(4);
			m_pGridCtrl->SetFixedColumnCount(1);
		}
		catch (CMemoryException* e)
		{
			e->ReportError();
			e->Delete();
			return;
		}

		// 填充每格数据
		for (int row = 0; row < m_pGridCtrl->GetRowCount(); row++)
			for (int col = 0; col < m_pGridCtrl->GetColumnCount(); col++)
			{ 
				GV_ITEM Item;
				Item.mask = GVIF_TEXT|GVIF_FORMAT;
				Item.row = row;
				Item.col = col;
				if (row < 1) {
					Item.nFormat = DT_LEFT|DT_WORDBREAK;
					switch(col)
					{
					  case 1:
						Item.szText.Format(_T("1# 发电机"));break;
					  case 10:
						Item.szText.Format(_T("2# 发电机"));break;
					  case 19:
						  Item.szText.Format(_T("1# 主变"));break;
					   case 22:
						   Item.szText.Format(_T("110kv 车乔线"));break;
					   case 27:
						   Item.szText.Format(_T("10kv 母线"));break;
					   case 29:
						   Item.szText.Format(_T("110kv 母线"));break;

					}
					
				} else if (col < 1) {
					Item.nFormat = DT_RIGHT|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
					if(row>=4&&row<28)
					Item.szText.Format(_T(" %d"),row-3);
					else 
					{
						switch(row)
						{
						case 30:Item.szText.Format(_T("4"));break;
						case 31:Item.szText.Format(_T(" 12"));break;
						case 32:Item.szText.Format(_T(" 20"));break;
						}

					}
				} else {
					Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
					Item.szText.Format(_T(" "));
				}
				m_pGridCtrl->SetItem(&Item);
		}

		m_pGridCtrl->AutoSize();
		m_pGridCtrl->SetRowHeight(0, 3*m_pGridCtrl->GetRowHeight(0)/2);
	}
      

	      
		  pDC=m_pGridCtrl->GetDC();
		  CSize cellSize;
		  GV_ITEM Item;
		  Item.mask = GVIF_TEXT|GVIF_FORMAT;
		  Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
		  CRect tempRect;
	  if (m_pGridCtrl->GetSafeHwnd())
	  {   
		  m_pGridCtrl->SetFixedCellCombine(0,0,3,0);
		  m_pGridCtrl->SetFixedCellCombine(0,1,0,8);
		  m_pGridCtrl->SetFixedCellCombine(0,10,0,8);
		  m_pGridCtrl->SetFixedCellCombine(0,19,0,2);
		  m_pGridCtrl->SetFixedCellCombine(0,22,0,4);
		  m_pGridCtrl->SetFixedCellCombine(0,27,0,1);
		  m_pGridCtrl->SetFixedCellCombine(0,29,0,1);
		  int i;
          
		  

		  for(i=5;i<=10;i++)
		  {
			  Item.col=i;
			  Item.row=1;
			  m_pGridCtrl->SetFixedCellCombine(1,i,1,0);
			  switch(i)
			  {
			  case 5:
				  Item.szText.Format(_T("有功"));
				  
				  cellSize=pDC->GetTextExtent("有功");
				  m_pGridCtrl->SetColumnWidth(Item.col,cellSize.cx+10);
				  break;
			  case 6:
				  Item.szText.Format(_T("无功"));
			
				  cellSize=pDC->GetTextExtent("无功");
				  m_pGridCtrl->SetColumnWidth(Item.col,cellSize.cx+10);break;
			  case 7:
				   Item.szText.Format(_T("励磁电压"));
				  
				  cellSize=pDC->GetTextExtent("励磁电压");
				  m_pGridCtrl->SetColumnWidth(Item.col,cellSize.cx+10);break; 
			  case 8:

				  Item.szText.Format(_T("励磁电流"));
				  
				  cellSize=pDC->GetTextExtent("励磁电流");
				  m_pGridCtrl->SetColumnWidth(Item.col,cellSize.cx+10);break;
               case 9:
				  Item.szText.Format(_T("复励电流"));
				  
				  cellSize=pDC->GetTextExtent("复励电流");
				  m_pGridCtrl->SetColumnWidth(Item.col,cellSize.cx+10);break;
			   case 10:
				  Item.szText.Format(_T("电压"));

⌨️ 快捷键说明

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