90 lines
3.2 KiB
C++
90 lines
3.2 KiB
C++
#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
|