📄 resultdlg.cpp
字号:
// ResultDlg.cpp : implementation file
//
#include "stdafx.h"
#include "cvenus.h"
#include "ResultDlg.h"
#include "resource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CResultDlg dialog
extern CCVenusApp theApp;
CResultDlg::CResultDlg(CWnd* pParent /*=NULL*/)
: CDialog(CResultDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CResultDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pParent = pParent;
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CResultDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CResultDlg)
DDX_Control(pDX, IDC_TTF19, m_grid9);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResultDlg, CDialog)
ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CResultDlg)
ON_WM_SIZE()
ON_WM_NCHITTEST()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResultDlg message handlers
/*************************************************************************
*
* Create()
*
* 功 能: 创立对话框
*
* 参 数: 无
*
* 返回值: 无
*************************************************************************/
BOOL CResultDlg::Create()
{
return CDialog::Create(CResultDlg::IDD, m_pParent);
}
BOOL CResultDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_hAccel = LoadAccelerators(AfxGetInstanceHandle( ),
MAKEINTRESOURCE(IDR_MAINFRAME));
CMenu* pSysMenu = GetSystemMenu(FALSE); // 得到系统菜单的指针
if (pSysMenu != NULL)
{
pSysMenu->ModifyMenu(0,MF_BYPOSITION);
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CResultDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if(m_grid9.m_hWnd != NULL)
{
CRect rc;
GetClientRect(&rc);
m_grid9.SetWindowPos(NULL, rc.left, rc.top, rc.Width(), rc.Height(), NULL);
}
}
/*************************************************************************
*
* DisplayCalcRst()
*
* 功 能: 显示计算结果
*
* 参 数: 无
*
* 返回值: 无
*
*************************************************************************/
void CResultDlg::DisplayCalcRst()
{
CString A, B;
// m_grid9.ClearRange(1, 1, m_grid9.GetMaxRow(), 5, 3);
m_grid9.DeleteRange(-1, -1, 0, 0, 0);
CWaitCursor wait;
if(m_cCalcFileName.IsEmpty())
{
AfxMessageBox("打开文件失败!");
return;
}
else
{
m_grid9.ReadEx(m_cCalcFileName);
}
int i, J, TX[2000][100];
int ZHS=m_grid9.GetLastRow();
int ZLS=m_grid9.GetLastCol();
for(i = 1;i<=ZHS;i++)
{
for(J = 1;J<=ZLS;J++)
{
A = m_grid9.GetTextRC(i, J);
if(A.IsEmpty())
{
TX[i][J] = 0;
}
else if (A.Find("$") == -1)
{
A = m_grid9.GetTextRC(i, J);
TX[i][J] = 16;
}
else
{
A.Replace(_T("$$"), _T(" "));
int ZFWZ=A.Find("$");
if (ZFWZ > 0)
m_grid9.SetTextRC(i, J, A.Left(ZFWZ));
else
m_grid9.ClearRange(i, J, i, J, 3);
TX[i][J] = atoi(A.Mid(ZFWZ+1));
}
// A.TrimLeft();
}
}
// COLORREF white = RGB(255, 255, 255);
for(J = 1;J <= m_grid9.GetLastCol(); J++)
{
for(i = 1;i<=m_grid9.GetLastRow();i++)
{
m_grid9.SetSelection(i, J, i, J);
switch(TX[i][J])
{
case 0: // 全无
m_grid9.SetBorder(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0);
break;
case 1: // 左
m_grid9.SetBorder(-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0);
break;
case 2: // 右
m_grid9.SetBorder(-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
break;
case 3: // 左,右
m_grid9.SetBorder(-1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
break;
case 4: // 上
m_grid9.SetBorder(-1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0);
break;
case 5: // 上,左
m_grid9.SetBorder(-1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0);
break;
case 6: // 上,右
m_grid9.SetBorder(-1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0);
break;
case 7: // 上,左,右
m_grid9.SetBorder(-1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0);
break;
case 8: // 下
m_grid9.SetBorder(-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
break;
case 9: // 左,下
m_grid9.SetBorder(-1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0);
break;
case 10: //右,下
m_grid9.SetBorder(-1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0);
break;
case 11://左,右,下
m_grid9.SetBorder(-1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0);
break;
case 12://上,下
m_grid9.SetBorder(-1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0);
break;
case 13:// 上,左,下
m_grid9.SetBorder(-1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0);
break;
case 14:// 上,右,下
m_grid9.SetBorder(-1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0);
break;
case 15:// 全有
case 16:// 全有
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0);
break;
}
//m_grid9.SetBorderStyle(1);
}
}
/* for(J = 1;J <= m_grid9.GetLastCol(); J++)
{
for(i = 1;i<=m_grid9.GetLastRow();i++)
{
m_grid9.SetSelection(i, J, i, J);
switch(TX[i][J])
{
case 0: // 全无
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, white, white, white);
break;
case 1: // 左
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, white, white, white);
break;
case 2: // 右
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, 0, white, white);
break;
case 3: // 左,右
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, 0, white, white);
break;
case 4: // 上
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, white, 0, white);
break;
case 5: // 上,左
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, white, 0, white);
break;
case 6: // 上,右
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, 0, 0, white);
break;
case 7: // 上,左,右
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, 0, 0, white);
break;
case 8: // 下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, white, white, 0);
break;
case 9: // 左,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, white, white, 0);
break;
case 10: //右,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, 0, white, 0);
break;
case 11://左,右,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, 0, white, 0);
break;
case 12://上,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, white, 0, 0);
break;
case 13:// 上,左,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, white, 0, 0);
break;
case 14:// 上,右,下
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, white, 0, 0, 0);
break;
case 15:// 全有
case 16:// 全有
m_grid9.SetBorder(-1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0);
break;
}
//m_grid9.SetBorderStyle(1);
}
}
*/
/* m_grid9.SetColHeaderDisplay(0);
m_grid9.SetCol(0);
m_grid9.SetRow(0);
m_grid9.SetCol2(m_grid9.GetMaxCols());
m_grid9.SetRow2(m_grid9.GetMaxRows());
m_grid9.SetBlockMode(TRUE);
m_grid9.SetFontName("宋体");
if(ColWidth * m_grid9.GetMaxCols() > 80)
m_grid9.SetFontSize(10);
else
m_grid9.SetFontSize(12);
m_grid9.SetFontBold(FALSE);
m_grid9.SetRow(m_grid9.GetMaxRows());
ColWidth=8;
for(J = 1;J<=m_grid9.GetMaxCols();J++)
{
m_grid9.SetCol(J);
if( m_grid9.GetText() != "")
ColWidth = atoi(m_grid9.GetText());
m_grid9.SetColWidth(J,ColWidth * m_grid9.GetFontSize() / 12);
}
m_grid9.SetBlockMode(FALSE);*/
m_grid9.SetMaxRow(m_grid9.GetLastRow());
m_grid9.SetMaxCol(m_grid9.GetLastCol());
// m_grid9.SetFocus();
{
m_grid9.SetAllowEditHeaders(false);
m_grid9.SetShowGridLines(false);
m_grid9.SetShowHScrollBar(1);
m_grid9.SetShowVScrollBar(1);
m_grid9.SetHdrHeight(300);
m_grid9.SetHdrWidth(1100);
// m_grid9.SetHdrSelection(TRUE, TRUE, TRUE);
// m_grid9.SetShowColHeading(false);
// m_grid9.SetShowRowHeading(false);
m_grid9.SetSelection(1, 1, m_grid9.GetMaxRow(), m_grid9.GetMaxCol());
m_grid9.SetFont("宋体", 12, FALSE, FALSE, FALSE, FALSE, RGB(0, 0, 0), FALSE, FALSE);
m_grid9.SetShowTabs(0);
m_grid9.SetSelection(1, 1, 1, 1);
}
switch(theApp.m_btProjectType)
{
case 7:
{
CString str;
int iMaxLen;
int tmpLen;
long max_row = m_grid9.GetMaxRow();
m_grid9.SetColWidthUnits(1);
iMaxLen = -1;
for(long j = 1; j <= max_row; j++)
{
str = m_grid9.GetTextRC(j, 1);
tmpLen = str.GetLength();
if(iMaxLen < tmpLen)
{
iMaxLen = tmpLen;
}
}
if(iMaxLen < 10)
{
iMaxLen = 10;
}
m_grid9.SetColWidth(1, iMaxLen * 15 * 8);
m_grid9.SetHdrWidth(400);
break;
}
case 10:
{
long max_col = m_grid9.GetMaxCol();
for(long j = 1; j <= max_col; j++)
{
m_grid9.SetColWidth(j,1200);
}
m_grid9.SetHdrWidth(400);
break;
}
case 17:
{
m_grid9.SetColWidthUnits(1);
m_grid9.SetColWidth(1,1500);
m_grid9.SetColWidth(2,1300);
m_grid9.SetColWidth(3,1100);
m_grid9.SetHdrWidth(400);
break;
}
case 18:
{
m_grid9.SetColWidthUnits(1);
m_grid9.SetColWidth(1,1150);
m_grid9.SetColWidth(2,1000);
m_grid9.SetColWidth(3,1000);
m_grid9.SetColWidth(4,1250);
m_grid9.SetColWidth(5,1000);
m_grid9.SetColWidth(6,1000);
m_grid9.SetColWidth(7,1250);
m_grid9.SetColWidth(8,1250);
m_grid9.SetColWidth(9,1000);
m_grid9.SetColWidth(10,1000);
m_grid9.SetHdrWidth(400);
break;
}
default:
break;
}
m_grid9.SetPrintScaleFitToPage(false);
m_grid9.SetPrintHeader("");
m_grid9.SetPrintColHeading(false);
m_grid9.SetPrintRowHeading(false);
}
void CResultDlg::PrintPreviewCalcRst()
{
m_grid9.FilePageSetupDlgEx(0xE0000);
m_grid9.FilePrintPreview();
}
void CResultDlg::PrintCalcRst()
{
m_grid9.FilePrintEx(TRUE,false);
}
UINT CResultDlg::OnNcHitTest(CPoint point)
{
UINT nHitTest =CDialog::OnNcHitTest(point);
return (nHitTest == HTCAPTION)?HTCLIENT:nHitTest;
}
BOOL CResultDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (m_hAccel != NULL)
if(TranslateAccelerator(this->m_hWnd, m_hAccel, pMsg))
return true;
return CDialog::PreTranslateMessage(pMsg);
}
void CResultDlg::OnDestroy()
{
CDialog::OnDestroy();
if (m_hAccel != NULL)
DestroyAcceleratorTable(m_hAccel);
// TODO: Add your message handler code here
}
BEGIN_EVENTSINK_MAP(CResultDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CResultDlg)
ON_EVENT(CResultDlg, IDC_TTF19, -602 /* KeyDown */, OnKeyDownTtf19, VTS_PI2 VTS_I2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CResultDlg::OnKeyDownTtf19(short FAR* KeyCode, short Shift)
{
char ch;
ch = char(*KeyCode);
if(ch == 'C' && (Shift&2))
m_grid9.EditCopy();
}
void CResultDlg::OnContextMenu(CWnd*, CPoint point)
{
// CG: This block was added by the Pop-up Menu component { if (point.x == -1 && point.y == -1){ //keystroke invocation CRect rect; GetClientRect(rect); ClientToScreen(rect); point = rect.TopLeft(); point.Offset(5, 5); } CMenu menu;
VERIFY(menu.LoadMenu(IDR_POPUP_VENUS));
CMenu* pPopup = menu.GetSubMenu(2);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = AfxGetMainWnd();
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner); }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -