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

📄 resultdlg.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 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 + -