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

192 lines
5.6 KiB
C++

#pragma once
#include "resource.h"
#include "afxwin.h"
#include "HDuctHydraulic.h"
#include "BtnST.h"
#include "HListCtrl.h"
#include "EarThwormDef.h"
// 管径颜色标识结构体
struct SPipeColor
{
double m_dMinVal; // 最小管径
double m_dMaxVal; // 最大管径
int m_iColorIdx; // 管线标识颜色索引号
};
// 风管尺寸规格
struct SDuctSectSpec
{
double m_dHeight; // '高'
double m_dWidth; // '宽', 圆风管值同'宽' == '高'同时表示风管直径
};
// 风量单位类型
enum EFluxDesc
{
eKgH = 0, // 单位类型为kg/h
eKgS = 1, // 单位类型为kg/s
eCobeH = 2, // 单位类型为m^3/h
eCobeS = 3, // 单位类型为m^3/s
eLH = 4, // 单位类型为L/h
eLS = 5, // 单位类型为L/s
};
class CFGBZDlg : public CDialog
{
DECLARE_DYNAMIC(CFGBZDlg)
public:
CFGBZDlg(CWnd* pParent = NULL);
virtual ~CFGBZDlg();
enum { IDD = IDD_FGBZ_DLG };
void SetEleReadOnly(BOOL bEleReadOnly,double dEl);
void EnableLoadLast(BOOL bLoadLast);
void LockEl(bool bLock){m_bLock = bLock;}
void SetAlignEnable(BOOL bEnableAlign){m_bEnableAlign = bEnableAlign;}
void GetPipeParam(AecHvac::DuctParam* pParam);
void SetShowParam(const AecHvac::DuctParam& param);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnBnClickedOk();
afx_msg void OnKgH();
afx_msg void OnKgS();
afx_msg void OnLH();
afx_msg void OnLS();
afx_msg void OnCobeS();
afx_msg void OnCobeH();
afx_msg void OnBnClickedBtnPopDnMenu();
afx_msg void OnBnClickedButChange();
afx_msg void OnChangeEdtSectWidth();
afx_msg void OnChangeEdtSectHeight();
afx_msg void OnClickLstHeight(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnClickLstWidth(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchangeCmbSect();
protected:
void CheckSysParameter(BOOL bInit = TRUE);
void ReCalHeightVR();
int GetVRDataRangeFromMDB(CArray<SPipeColor, SPipeColor>& arDataRange, BOOL bVData = TRUE);
BOOL UpdataVRDataRangeArray();
void ReCalWidthVR();
void SetFluxType( EFluxDesc eFluxDesc );
int GetDuctSectSpecArray(CArray<SDuctSectSpec, SDuctSectSpec>& arMatSpec, const int iSect);
int FindInsertIndex(double &dDifferArea, double &dBestArea, CArray<SDuctSectSpec, SDuctSectSpec>& arRmdSize);
double ChangeFluxTo(double dFluxOld, EFluxDesc eType, double dDencity);
double ChangeFluxBy(double dFluxOld, EFluxDesc eType, double dDencity);
void CalSizeByFlux();
double GetNormalSize( const double &dSize, CArray<double, double>& arSize, BOOL bLittleHigh );
int GetDataRange(CArray<SPipeColor, SPipeColor>& arPipeColor);
void SetSectWidthList();
void SetSectHeightList();
void SetSectDia();
BOOL GetMediumInfo(CString& csPressure, CString& csMedium, CString& csTemperature,CString& csHumidity, CString& csDensity, CString& csStickiness);
public:
BOOL m_bLoadLast;
bool m_bLock;//是否锁定标高,临时不记录历史
double m_dElOld;
BOOL m_bEleReadOnly;
BOOL m_bEnableAlign;
int m_nAlign;
CComboBox m_wndAlignCombo;
CEdit m_wndEditEl;
CUIISQLiteServer* m_pDbServer;
CString m_csWidth;
CString m_csHeight;
HDuctHydraulic m_cHydraulic; // 水力计算
double m_dDencity; // 密度
CHListCtrl m_wndLstHeight;
CHListCtrl m_wndLstWidth;
double m_dTopEl;
CString m_sProvider;
CString m_sDuctUse;
CString m_sMat;
int m_nSecType;
double m_dt;
double m_dRatio;
CString m_sNo;
double m_dFlux; // 风量(m^3/h)
// 风速
double m_dV;
// 比摩阻
double m_dR;
// 沿层阻力
double m_dPy;
CString m_csFlux;
CDoubleArray m_arSizeRect;// 矩形尺寸
CDoubleArray m_arSizeCir;// 圆形尺寸
CComboBox m_wndCmbSect;
CComboBox m_wndCmbPipeType;
CComboBox m_wndCmbPipeMaterial;
int m_nOption;// 0-显示风速 1-显示比摩阻
CMapStringToString m_mapCfg; // 保存通用设置
//Fit
AecHvac::HvacOffsetType m_eOffsetFirst; // 乙字弯优先类型
AecHvac::HvacOffsetType m_eOffsetSec; // 乙字弯其次类型
CString m_csOffCalType; // 乙字弯计算方法
double m_dOffsetAngle; // 斜接乙字弯角度
double m_dOffsetRatio; // 乙字弯曲率倍数
AecHvac::HvacElbowType m_eElbowTypeR; // 矩形弯头默认类型
AecHvac::HvacElbowType m_eElbowTypeC; // 圆形弯头默认类型
double m_dElbowRatio; // 弯头曲率
int m_nElbowXiaMi; // 虾米弯节数
AecHvac::HvacTeeType m_eTeeTypeR; // 矩形三通默认类型
AecHvac::HvacTeeType m_eTeeTypeC; // 圆形三通默认类型
double m_dTeeRatio; // 三通曲率
double m_dTeeAngle; // 三通角度
AecHvac::HvacCrossType m_eCrossTypeR; // 矩形四通默认类型
AecHvac::HvacCrossType m_eCrossTypeC; // 圆形四通默认类型
double m_dCrossRatio; // 四通曲率
double m_dCrossAngle; // 四通角度
CString m_csReduceCalType; // 变径长度计算方法
double m_dReduceLength; // 变径长度
double m_dReduceAnlge; // 变径角度
AecHvac::HvacFlangeType m_eFlangeType; // 法兰形式
double m_dPlusEdge; // 咬口法兰翻边余量
// 风量单位类型
EFluxDesc m_eFluxType;
// 添加根据风量风速,推荐合适尺寸功能
CString m_sRmdVg; // 用户设置的风管推荐风速
CMenu m_SizeMenu; // 推荐尺寸菜单
CString m_sRmdSize; // 保存用户选中的尺寸
CArray<SPipeColor, SPipeColor> m_arPipeColor;// 流速,R
CArray<SPipeColor, SPipeColor> m_arVRange; // 速度范围
CArray<SPipeColor, SPipeColor> m_arRRange; // 比摩组范围
CButtonST m_wndBtnSTFlux;
CButtonST m_wndBtnPopDnMenu; // 弹出推荐尺寸按钮
double m_dCenEl;
afx_msg void OnEnChangeEdit2();
afx_msg void OnBnClickedButton1();
};