Files
envi-code/SourceCode/Code2026/tg_shs/shs_TwtCalc/GasFireCalcDlg.cpp
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

235 lines
5.5 KiB
C++

// GasFireCalcDlg.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "GasFireCalcDlg.h"
#include "TGAs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void GasFireCalc()
{
CGasFireCalcDlg dlg;
{
CTemporaryResourceOverride vTemp;
dlg.Create(IDD_CALC_GASFIRE, acedGetAcadFrame());
}
dlg.ShowWindow(SW_SHOW);
acedGetAcadDwgView()->SetFocus();
// 通过隐含的用户交互函数暂停程序,以便完成操作
acedInitGet(RSG_NOZERO, _T("~ "));
TCHAR sz[10];
acedGetString(0, _T(""),sz);
dlg.DestroyWindow();
}
/////////////////////////////////////////////////////////////////////////////
// CGasFireCalcDlg dialog
CGasFireCalcDlg::CGasFireCalcDlg(CWnd* pParent /*=NULL*/)
: CModelessDialog(CGasFireCalcDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CGasFireCalcDlg)
// NOTE: the ClassWizard will add member initialization here
m_nType = 0;
//}}AFX_DATA_INIT
}
void CGasFireCalcDlg::DoDataExchange(CDataExchange* pDX)
{
CModelessDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGasFireCalcDlg)
DDX_Control(pDX, IDC_TAB_SEL, m_wndTabCalcType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CGasFireCalcDlg, CModelessDialog)
//{{AFX_MSG_MAP(CGasFireCalcDlg)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_SEL, OnSelchangeTabSel)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGasFireCalcDlg message handlers
void CGasFireCalcDlg::OnSelchangeTabSel(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_nType = m_wndTabCalcType.GetCurSel();
CalcTypeChange();
*pResult = 0;
acedGetAcadDwgView()->SetFocus();
}
BOOL CGasFireCalcDlg::OnInitDialog()
{
CModelessDialog::OnInitDialog();
m_wndTabCalcType.InsertItem(0, _T("七氟丙烷灭火系统"));
m_wndTabCalcType.InsertItem(1, _T("IG541混合气体灭火系统"));
m_wndTabCalcType.InsertItem(2, _T("热气溶胶预制灭火系统"));
m_wndTabCalcType.SetCurSel(m_nType);
CodeBase db;
XString fullFile;
if(!FindFile(_T("twtdatastore.dbf"), fullFile))
{
AfxMessageBox(_T("对不起,没有发现twtdatastore.dbf文件!"));
acedGetAcadDwgView()->SetFocus();
}
m_dlgType1.Create(IDD_CALC_GASFIRE1, &m_wndTabCalcType);
m_dlgType2.Create(IDD_CALC_GASFIRE2, &m_wndTabCalcType);
m_dlgType3.Create(IDD_CALC_GASFIRE3, &m_wndTabCalcType);
CRect rect;
m_wndTabCalcType.GetClientRect(&rect);
rect.right += 20;
m_wndTabCalcType.MoveWindow(&rect);
m_dlgType1.GetClientRect(&rect);
rect.left += 7;
rect.top += 25;
rect.right += 7;
rect.bottom += 25;
m_dlgType1.MoveWindow(&rect);
m_dlgType2.GetClientRect(&rect);
rect.left += 7;
rect.top += 25;
rect.right += 7;
rect.bottom += 25;
m_dlgType2.MoveWindow(&rect);
m_dlgType3.GetClientRect(&rect);
rect.left += 7;
rect.top += 25;
rect.right += 7;
rect.bottom += 25;
m_dlgType3.MoveWindow(&rect);
UpdateData(FALSE);
CalcTypeChange();
return TRUE;
}
void CGasFireCalcDlg::CalcTypeChange()
{
m_dlgType1.ShowWindow(SW_HIDE);
m_dlgType2.ShowWindow(SW_HIDE);
m_dlgType3.ShowWindow(SW_HIDE);
switch(m_wndTabCalcType.GetCurSel())
{
case 0:
{
m_dlgType1.ShowWindow(SW_SHOW);
CRect rect1;
m_dlgType1.GetWindowRect(&rect1);
CRect rect;
GetClientRect(&rect);
double dW1 = 0.0, dW2 = 0.0, dH1 = 0.0, dH2 = 0.0;
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
GetWindowRect(&rect);
rect.right += dW1 - dW2 + 25;
rect.bottom += dH1 - dH2 + 40;
MoveWindow(&rect);
// 调整tab大小
m_wndTabCalcType.GetClientRect(&rect);
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
rect.left += 5;
rect.top += 5;
rect.right += dW1 - dW2 + 20;
rect.bottom += dH1 - dH2 + 35;
m_wndTabCalcType.MoveWindow(&rect);
break;
}
case 1:
{
m_dlgType2.ShowWindow(SW_SHOW);
CRect rect1;
m_dlgType2.GetWindowRect(&rect1);
CRect rect;
GetClientRect(&rect);
double dW1 = 0.0, dW2 = 0.0, dH1 = 0.0, dH2 = 0.0;
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
GetWindowRect(&rect);
rect.right += dW1 - dW2 + 25;
rect.bottom += dH1 - dH2 + 40;
MoveWindow(&rect);
// 调整tab大小
m_wndTabCalcType.GetClientRect(&rect);
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
rect.left += 5;
rect.top += 5;
rect.right += dW1 - dW2 + 20;
rect.bottom += dH1 - dH2 + 35;
m_wndTabCalcType.MoveWindow(&rect);
break;
}
case 2:
{
m_dlgType3.ShowWindow(SW_SHOW);
CRect rect1;
m_dlgType3.GetWindowRect(&rect1);
CRect rect;
GetClientRect(&rect);
double dW1 = 0.0, dW2 = 0.0, dH1 = 0.0, dH2 = 0.0;
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
GetWindowRect(&rect);
rect.right += dW1 - dW2 + 25;
rect.bottom += dH1 - dH2 + 40;
MoveWindow(&rect);
// 调整tab大小
m_wndTabCalcType.GetClientRect(&rect);
dW1 = rect1.Width();
dW2 = rect.Width();
dH1 = rect1.Height();
dH2 = rect.Height();
rect.left += 5;
rect.top += 5;
rect.right += dW1 - dW2 + 20;
rect.bottom += dH1 - dH2 + 35;
m_wndTabCalcType.MoveWindow(&rect);
break;
}
}
}
void CGasFireCalcDlg::OnClose()
{
m_dlgType1.DestroyWindow();
m_dlgType2.DestroyWindow();
m_dlgType3.DestroyWindow();
PostCommand(_T("~ "));
acedGetAcadDwgView()->SetFocus();
CModelessDialog::OnClose();
}