#if !defined(AFX_CALCFEEDPUBLICKDLG_H__07E9BE31_733D_4FDB_BAFD_7997F62E55B1__INCLUDED_) #define AFX_CALCFEEDPUBLICKDLG_H__07E9BE31_733D_4FDB_BAFD_7997F62E55B1__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif #include "resource.h" #include "WDGRID.h" #include "map" class CFeedPublickGrid: public WDGrid { protected: virtual void OnCellComboString(WDGridCell&cell,CComboBox&combo);//准备下拉列表内容 virtual bool OnModified(WDGridCell&cell,CString &text);//单元内容将改变为text,返回值代表是否确定 public: CFeedPublickGrid(); }; class CCalcFeedPublickDlg : public CDialog { public: DECLARE_DYNAMIC(CCalcFeedPublickDlg) CCalcFeedPublickDlg(CWnd* pParent = NULL); // standard constructor ~CCalcFeedPublickDlg(); public: void SetObjectID(AcDbObjectId id); void SetListAll(SSearchPipeList *pListAll); //{{AFX_DATA(CCalcFeedPublickDlg) enum { IDD = IDD_CALC_FEEDPUBLIC }; CButton m_searchPipe; CFeedPublickGrid m_publicGrid; double m_dAlpha; int m_iArch; CString m_csDn; CString m_csLost; //}}AFX_DATA //{{AFX_VIRTUAL(CCalcFeedPublickDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL protected: //{{AFX_MSG(CCalcFeedPublickDlg) virtual void OnOK(); afx_msg void OnSelchangeComboArchtype(); virtual BOOL OnInitDialog(); afx_msg void OnBookbtn(); afx_msg void OnRecaculate(); afx_msg void OnSearchbtn(); afx_msg void OnButtonSetting(); afx_msg void OnButtonSheet(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: void DoDimFeedPipeDn(SSearchPipeList *pListAll, double nA, int iMode); //得到最不利节点 SSearchPipeList *GetFeedDisadvantageNode(SSearchPipeList *pListAll, SSearchPipeList *pDisadvantage); void DoCalcFeedWaterLost(SSearchPipeList *pDisadvantage, double &dAllLostRet); void ImportFeedCalcWord(DList &lstNode, const TCHAR* szArch, double nA); void GetPipeVIByDn(double nQ, AcDbObjectId id, int iDn, double &nLost, double &nI, double &nSpeed); SSearchPipeList *GetNextExportNode2(SSearchPipeList *pListAll, SSearchPipeList *pDisadvantage,std::map mapLable); //计算 nMode = 0 初算 1 复算 void CacluatePipe(int nMode); //显示数据到表中 void UpdatePublicGrid(DList &lstNode,BOOL bShowRe = TRUE); //修改管径 void UpdatePipeRadius(); void ResetList(SSearchPipeList *pListAll); private: CString m_csArch; //建筑类型 AcDbObjectIdArray m_arId; SSearchPipeList *m_pListAll; DList m_listNode; CBitmap m_bitSearchPipe; public: AcDbObjectId m_id; }; #endif // !defined(AFX_CALCFEEDPUBLICKDLG_H__07E9BE31_733D_4FDB_BAFD_7997F62E55B1__INCLUDED_)