📄 dlgvalues.cpp
字号:
// 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 + -