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

📄 srhfform.cpp

📁 这是本人两年前兼职为某个公司做的石油钻进设计软件
💻 CPP
字号:
// SrhfForm.cpp : implementation file
//

#include "stdafx.h"
#include "cvenus.h"
#include "SrhfForm.h"
#include "ShwrjCalFuction.h"
#include "Preview.h"
#include "resource.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSrhfForm

IMPLEMENT_DYNCREATE(CSrhfForm, CFormView)

CSrhfForm::CSrhfForm()
: CFormView(CSrhfForm::IDD)
{
	//{{AFX_DATA_INIT(CSrhfForm)
	// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CSrhfForm::~CSrhfForm()
{
}

void CSrhfForm::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSrhfForm)
	DDX_Control(pDX, IDC_SPREAD1, m_SJSR);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSrhfForm, CFormView)
	ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CSrhfForm)
ON_WM_CREATE()
ON_COMMAND(ID_SHWRJ_OPEN, OnShwrjOpen)
ON_COMMAND(ID_SHWRJ_CALC, OnShwrjCalc)
ON_COMMAND(ID_SHWRJ_SAVE, OnShwrjSave)
ON_COMMAND(ID_SHWRJ_PRINTPREVIEW, OnShwrjPrintpreview)
ON_COMMAND(ID_SHWRJ_PRINT, OnShwrjPrint)
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSrhfForm diagnostics

#ifdef _DEBUG
void CSrhfForm::AssertValid() const
{
	CFormView::AssertValid();
}

void CSrhfForm::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSrhfForm message handlers

BEGIN_EVENTSINK_MAP(CSrhfForm, CFormView)
//{{AFX_EVENTSINK_MAP(CSrhfForm)
ON_EVENT(CSrhfForm, IDC_SPREAD1, 4 /* Change */, OnChangeSpread1, VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CSrhfForm::OnChangeSpread1(long Col, long Row) 
{
	// TODO: Add your control notification handler code here
	/*      CString Temp1;
	m_SJSR.SetCol(5);
	m_SJSR.SetRow(3);   
	Temp1=m_SJSR.GetText();
	if(Temp1=="甲醇"||Temp1=="乙醇"||Temp1=="乙二醇")
	{
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("0");
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("100");
	}
	if(Temp1=="异丙醇")
	{
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("0");
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("99.99");
	}
	if(Temp1=="丙二醇")
	{
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("0");
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("99.99");
	}
	if(Temp1=="氯化钠")
	{
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("0");
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("99.99");
	}
	if(Temp1=="氯化钙")
	{
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("0");
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	m_SJSR.SetText("99.99");
}*/
	
	
}

int CSrhfForm::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFormView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	GetParentFrame()->SetWindowText(_T("H法计算生成温度降"));
	
	return 0;
}

void CSrhfForm::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
/*	int i,j;
	
	m_SJSR.SetMaxRows(9);
	m_SJSR.SetMaxCols(5);
    
	m_SJSR.SetDisplayColHeaders(FALSE);//取消表头
	m_SJSR.SetDisplayRowHeaders(FALSE);//取消表头
    m_SJSR.SetGridShowHoriz(FALSE);//不显示网格线
	m_SJSR.SetGridShowVert(FALSE);//不显示网格线
	
	m_SJSR.SetRow(-1);
	m_SJSR.SetCol(-1);
	m_SJSR.SetAction(3);
	m_SJSR.SetFontName("宋体");
	m_SJSR.SetFontSize(12);
	
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(1);
	m_SJSR.SetColWidth(3,12);
	m_SJSR.SetRowHeight(1,15);
	m_SJSR.SetValue("参数输入");
	
	//设置表格不可编辑
	for(i=1;i<=5;i++)
		for(j=1;j<=9;j++)
		{
			m_SJSR.SetCol(i);
			m_SJSR.SetRow(j);
			m_SJSR.SetCellType(5);
		}
		
		// 设置单元格线样式
		for(i=1;i<=5;i++)
			for(j=2;j<=5;j++)
			{
				m_SJSR.SetCol(i);
				m_SJSR.SetRow(j);
				m_SJSR.SetCellBorderType(16);//单元格为实框
				m_SJSR.SetCellBorderStyle(1);//实线
				m_SJSR.SetCellBorderColor(RGB(0,0,0));//单元格边框颜色
				m_SJSR.SetAction(16);//激活
			}
			
			m_SJSR.SetCol(1);
			m_SJSR.SetColWidth(1,22);
			m_SJSR.SetRowHeight(1,20);
			
			m_SJSR.SetRow(2);	
			m_SJSR.SetValue("参数名称");    
			m_SJSR.SetRow(3);
			m_SJSR.SetText("抑制剂种类");
			m_SJSR.SetRow(4);
			m_SJSR.SetText("抑制剂分子量");
			m_SJSR.SetRow(5);
			m_SJSR.SetText("抑制剂溶液重量百分数");
			
			m_SJSR.SetCol(2);
			m_SJSR.SetColWidth(2,15);
			m_SJSR.SetRowHeight(2,20);
			
			m_SJSR.SetRow(2);
			m_SJSR.SetValue("单位");
			m_SJSR.SetRow(3);
			m_SJSR.SetText("");
			m_SJSR.SetRow(4);
			m_SJSR.SetText("  ");
			m_SJSR.SetRow(5);
			m_SJSR.SetText("%");
			
			m_SJSR.SetCol(3);
			m_SJSR.SetColWidth(3,8);
			
			m_SJSR.SetRow(2);
			m_SJSR.SetValue("最小值");
			m_SJSR.SetRow(3);
			m_SJSR.SetText(" ");
			m_SJSR.SetRow(4);
			m_SJSR.SetText("");
			m_SJSR.SetRow(5);
			m_SJSR.SetText("0");
			
			m_SJSR.SetCol(4);
			m_SJSR.SetColWidth(4,8);
			
			m_SJSR.SetRow(2);
			m_SJSR.SetValue("最大值");
			m_SJSR.SetRow(3);
			m_SJSR.SetText(" ");
			m_SJSR.SetRow(4);
			m_SJSR.SetText("");
			m_SJSR.SetRow(5);
			m_SJSR.SetText("70");
			
			m_SJSR.SetCol(5);
			m_SJSR.SetColWidth(5,12);
			m_SJSR.SetRow(2);
			m_SJSR.SetValue("参数值");
			for(i=3;i<=5;i++)
			{
				m_SJSR.SetRow(i);
				m_SJSR.SetCellType(2);
				m_SJSR.SetTypeFloatDecimalPlaces(5);
				m_SJSR.SetTypeFloatMin(0);
				m_SJSR.SetTypeFloatMax(99999);
			}	
			m_SJSR.SetCol(5);
			m_SJSR.SetRow(3);
			m_SJSR.SetCellType(8);
			m_SJSR.SetTypeComboBoxList("甲醇\t乙醇\t异丙醇\t氨\t氯化钠\t乙二醇\t丙二醇\t二乙二醇");
			
			m_SJSR.SetCol(3);
			m_SJSR.SetRow(7);
			m_SJSR.SetColWidth(3,10);
			m_SJSR.SetValue("计算结果");
			
			m_SJSR.SetCol(2);
			m_SJSR.SetRow(8);
			m_SJSR.SetColWidth(2,10);
			m_SJSR.SetValue("温度降");
			
			m_SJSR.SetCol(4);
			m_SJSR.SetRow(8);
			m_SJSR.SetCellType(5);
			m_SJSR.SetValue("K");
			
			m_SJSR.SetCol(2);
			m_SJSR.SetRow(8);
			m_SJSR.SetCol2(2);
			m_SJSR.SetRow2(8);
			m_SJSR.SetBlockMode(TRUE);
			m_SJSR.SetCellBorderType(16);
			m_SJSR.SetCellBorderStyle(1);
			m_SJSR.SetCellBorderColor(RGB(0,0,0));
			m_SJSR.SetAction(16);
			m_SJSR.SetBlockMode(FALSE);
			
			m_SJSR.SetCol(3);
			m_SJSR.SetRow(8);
			m_SJSR.SetCol2(3);
			m_SJSR.SetRow2(8);
			m_SJSR.SetBlockMode(TRUE);
			m_SJSR.SetCellBorderType(16);
			m_SJSR.SetCellBorderStyle(1);
			m_SJSR.SetCellBorderColor(RGB(0,0,0));
			m_SJSR.SetAction(16);
			m_SJSR.SetBlockMode(FALSE);
			
			m_SJSR.SetCol(4);
			m_SJSR.SetRow(8);
			m_SJSR.SetCol2(4);
			m_SJSR.SetRow2(8);
			m_SJSR.SetBlockMode(TRUE);
			m_SJSR.SetCellBorderType(16);
			m_SJSR.SetCellBorderStyle(1);
			m_SJSR.SetCellBorderColor(RGB(0,0,0));
			m_SJSR.SetAction(16);
			m_SJSR.SetBlockMode(FALSE);
			
			m_SJSR.SetRow(9);
			m_SJSR.SetValue("  ");	
*/			
}

void CSrhfForm::OnShwrjOpen() 
{
	CString fileDialogFilter1="H法预测生成温度降(*.HFWD)|*.HFWD||";
	const char fileDialogExt1[] = "HFWD";
	CFileDialog fileDialog1(TRUE,fileDialogExt1,NULL,OFN_FILEMUSTEXIST, fileDialogFilter1);
    if(fileDialog1.DoModal()==IDOK)
	{
		CString filename1=fileDialog1.GetPathName();//+fileDialog.GetFileName();		
		m_SJSR.LoadFromFile(filename1);		
	}
    UpdateData(FALSE);		
	
}

void CSrhfForm::OnShwrjCalc() 
{
	double t,zxz,zdz;
	double m, w, K;
	int kk;
	//T——水化物生成温度降,K
	//M——抑制剂分子量
	//w——抑制剂溶液重量百分数
	//K——抑制剂种类常数
	//kk——抑制剂种类
	//a类——甲醇、乙醇、异丙醇、氨
	//B类——氯化钠
	//C类——乙二醇、丙二醇
	//D类——二乙二醇
	CString Temp1,Temp2,Temp4;
	char Temp3[30];
	m_SJSR.SetCol(5);
	m_SJSR.SetRow(3);   
	Temp1=m_SJSR.GetText();
	if(Temp1=="甲醇"||Temp1=="乙醇"||Temp1=="异丙醇"||Temp1=="氨")
		kk = 1;
	if(Temp1=="氯化钠")
		kk = 2;
	if(Temp1=="乙二醇"||Temp1=="丙二醇")
		kk = 3;
	if(Temp1=="二乙二醇")
		kk = 4;
	
	m_SJSR.SetRow(4);   
	Temp2=m_SJSR.GetText();   
	m=atof(Temp2);
	
	m_SJSR.SetRow(5);   
	Temp4=m_SJSR.GetText(); 
	w=atof(Temp4);
	//取值        
	m_SJSR.SetCol(3);
	m_SJSR.SetRow(5); 
	zxz=atof(m_SJSR.GetText());
	m_SJSR.SetCol(4);
	m_SJSR.SetRow(5); 
	zdz=atof(m_SJSR.GetText());    
	/*	 kk = 1;
	m = 32;//抑制剂分子量
	w = 20;//抑制剂溶液重量百分数*/
	//msg = "水化物生成温度降是"
	if(w>zxz&&w<=zdz)
	{
		switch(kk)
		{
		case 1:  //使用a类抑制剂
			K = 1228;
			t = 273.15 + K * w / (m * (100 - w));
			break;
		case 2:  //使用B类抑制剂
			K = 1220;
			t = 273.15 + K * w / (m * (100 - w));
			break;
		case 3:   //使用C类抑制剂
			K = 2195;
			t = 273.15 + K * w / (m * (100 - w));
			break;
		case 4:   //使用D类抑制剂
			K = 2425;
			t = 273.15 + K * w / (m * (100 - w));//温度K
			break;
		default: AfxMessageBox("选用抑制剂不当");
		}
		//输出结果
		gcvt(t,7,Temp3);
		m_SJSR.SetCol(2);
		m_SJSR.SetRow(8);
		m_SJSR.SetValue(Temp3);
	}
	else
	{
		AfxMessageBox("抑制剂溶液重量百分数数据非法");
	}
	
}

void CSrhfForm::OnShwrjSave() 
{
	UpdateData(TRUE);
	CString fileDialogFilter1="H法预测生成温度降(*.HFWD)|*.HFWD||";
	const char fileDialogExt1[] = "HFWD";
	CFileDialog fileDialog1(FALSE,fileDialogExt1,NULL,OFN_FILEMUSTEXIST, fileDialogFilter1);
    if(fileDialog1.DoModal()==IDOK)
	{
		CString filename1=fileDialog1.GetPathName();//+fileDialog.GetFileName();		
		m_SJSR.SaveToFile(filename1,FALSE);		
	}	
	
}

void CSrhfForm::OnShwrjPrintpreview() 
{
	// TODO: Add your command handler code here
	CPreview dlg(&m_SJSR);
	dlg.DoModal();
	
}

void CSrhfForm::OnShwrjPrint() 
{
    m_SJSR.SetAction(13);		
	
}

void CSrhfForm::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_SHWRJ));		CMenu* pPopup = menu.GetSubMenu(0);		ASSERT(pPopup != NULL);		CWnd* pWndPopupOwner = this;//		while (pWndPopupOwner->GetStyle() & WS_CHILD)//			pWndPopupOwner = pWndPopupOwner->GetParent();		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,			pWndPopupOwner);	}
}

void CSrhfForm::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	if(m_SJSR.m_hWnd != NULL)
	{
		CRect rc;	
		GetClientRect(&rc);
		m_SJSR.SetWindowPos(NULL, rc.left, rc.top, rc.Width(), rc.Height(), NULL);
	}
	
}

⌨️ 快捷键说明

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