#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& arDataRange, BOOL bVData = TRUE); BOOL UpdataVRDataRangeArray(); void ReCalWidthVR(); void SetFluxType( EFluxDesc eFluxDesc ); int GetDuctSectSpecArray(CArray& arMatSpec, const int iSect); int FindInsertIndex(double &dDifferArea, double &dBestArea, CArray& 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& arSize, BOOL bLittleHigh ); int GetDataRange(CArray& 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 m_arPipeColor;// 流速,R CArray m_arVRange; // 速度范围 CArray m_arRRange; // 比摩组范围 CButtonST m_wndBtnSTFlux; CButtonST m_wndBtnPopDnMenu; // 弹出推荐尺寸按钮 double m_dCenEl; afx_msg void OnEnChangeEdit2(); afx_msg void OnBnClickedButton1(); };