#ifndef _OPENLAYER_H_ #define _OPENLAYER_H_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "resource.h" // add xly 100613 // 类的功能:打开图层/解冻图层命令显示当前图纸中的所有已关闭、冻结的图层和图层描述,包括外部参照 class COpenLayer : public GlwCAcUiDialog { public: COpenLayer(CWnd* pParent = NULL); virtual ~COpenLayer(); //{{AFX_DATA(COpenLayer) enum { IDD = IDD_DLG_OPENLAYER }; CListCtrl m_wndLstLayer; // 存储本图图层的列表框控件 CListCtrl m_wndLstOutLayer; // 存储外部参照图层的列表框控件 //}}AFX_DATA //{{AFX_VIRTUAL(COpenLayer) protected: virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL public: CStringArray m_csAryLayerAll;// 保存图层名称 CStringArray m_csAryLayerCon;// 保存图层描述 bool m_bOpenorFreeze; // 打开还是解冻 // CRect m_Rect; // 对话框控件的大小 bool m_bHasOutLayer; // 标记是否有外部参照 protected: //{{AFX_MSG(COpenLayer) virtual BOOL OnInitDialog(); afx_msg void OnButtonAllSel(); // 全选按钮事件 afx_msg void OnButtonClear(); // 全部清除按钮事件 afx_msg void OnButtonApplication(); // 应用按钮事件 virtual void OnOK(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: // 改变控件的大小位置关系 void ChangeSize(UINT nType, int cx, int cy); // 获得列表框中的图层以及图层描述 void GetLockOrFrozLayer(); // add by xly on 110506 获得外部参照中的图层描述 void GetLockOrFrozLayerExt(CStringArray& csLayerExt, CStringArray& csLayerExtAll); // 打开、解冻制定的图层,打开:bOpenOrFree=true;解冻:bOpenOrFree=false void UnLockLayer(CString &csCurLayer, bool bOpenOrFree); private: // 这些数据用以确定对话框上控件在改变对话框大小的时候,如何改变自身的位置和大小 int SPACE1, SPACE2, SPACE3, SPACE4; // 对话框宽度方向上,控件的间隔 int PSPACE1, PSPACE2, PSPACE3; // 行方向上控件的间隔 int SPACEBTN; // 按钮间隔 int BTNHEI, BTNWID; // 按钮长宽 int LABELHEI, LABEL2Wid; // 注意不需要第一个label的宽度。第一个label的大小和位置是永远不变的。 double SCALE_FOR_LIST; // 以上所有数据根据按钮高度为基准,确定实际大小。 ////////////////////////////////////////////////////////////////////////// void InitSpaceSize() ; // 填充上述space大小 void LstLayerRect(CRect &rect, int dlgCx, int dlgCy); // void LstRefLayerRect(CRect &rect, int dlgCx, int dlgCy); void BtnAllSelRect(CRect &rect, int dlgCx, int dlgCy); void BtnClearRect(CRect &rect, int dlgCx, int dlgCy); void BtnApplyRect(CRect &rect, int dlgCx, int dlgCy); void BtnOkRect(CRect &rect, int dlgCx, int dlgCy); void BtnCancelRect(CRect &rect, int dlgCx, int dlgCy); void Label2Rect(CRect &rect, int dlgCx, int dlgCy); // 将普通的对话框转化成包含外部引用的对话框大小 void BigDlgRect(const CRect &smallRect, CRect &bigRect); // void Layout(int cx, int cy); bool IsInitSizeData() {return SPACE1 != -1;} }; #endif