524 lines
16 KiB
C++
524 lines
16 KiB
C++
#pragma once
|
||
#include <afxcView.h> // for CTreeView
|
||
#include "OpeningCheck.h"
|
||
#include "resource.h"
|
||
|
||
namespace NDoorWinCheck
|
||
{
|
||
class CDataTable;
|
||
|
||
class CSplitFrame : public CFrameWnd
|
||
{
|
||
DECLARE_DYNCREATE(CSplitFrame)
|
||
|
||
DECLARE_MESSAGE_MAP()
|
||
public:
|
||
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
|
||
|
||
CSplitterWnd m_wndSplit;
|
||
};
|
||
|
||
class TreeItemData;
|
||
class CDoorWinTreeView;
|
||
class CGridView;
|
||
// 数据
|
||
class CFrameData
|
||
{
|
||
public:
|
||
CFrameData() : m_pGridView(NULL), m_pTreeView(NULL){m_pDataTable = new CDataTable;}
|
||
~CFrameData() {delete m_pDataTable;m_pDataTable = NULL;}
|
||
public:
|
||
CDataTable *m_pDataTable;
|
||
|
||
CGridView *m_pGridView;
|
||
CDoorWinTreeView *m_pTreeView;
|
||
};
|
||
|
||
enum ETips {eConflictTip = 0,
|
||
eNoFloorTip,
|
||
eNoDataTip,
|
||
eDataInOtherDWGTip,
|
||
eNoLabelTip,
|
||
eCorrespondingTip,
|
||
eBlockData,
|
||
eDocNotInProj,
|
||
eTipNum};
|
||
// 门窗检查窗口
|
||
class CDoorWinFrame : public CFrameWnd
|
||
{
|
||
DECLARE_DYNCREATE(CDoorWinFrame)
|
||
|
||
DECLARE_MESSAGE_MAP()
|
||
public:
|
||
CDoorWinFrame();
|
||
virtual ~CDoorWinFrame();
|
||
|
||
void SetGridView(CGridView *pGrid);
|
||
void SetTreeView(CDoorWinTreeView *pTree);
|
||
CDataTable* GetDataTable() {return m_dataCenter.m_pDataTable;}
|
||
CFrameData* GetData();
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
// 幻灯片显示函数:
|
||
//显示幻灯
|
||
static void ShowSlide(CStatic& st, CImageDC& imgdc, const TCHAR* sldName);
|
||
void SetSlideItem(TreeItemData *pItemData);
|
||
// 清空显示,和保存的数据
|
||
void ClearSlideItem();
|
||
void ShowSlide2d(CString &strStyle2d);
|
||
void ShowSlide3d(CString &strStyle3d);
|
||
|
||
// 更新原图
|
||
void UpdateDWG(TreeItemData *pItemData);
|
||
|
||
void ReDrawWnd(); // 窗口更新。
|
||
|
||
// 提示信息
|
||
void SetTip (ETips eTip, bool bSet = true);
|
||
CString GetTip(ETips eTip) const ;
|
||
CString GetTip() const ;
|
||
void SetConflictDataNum(int nNum) {m_nConflictDataNum = nNum;};
|
||
void SetNoLabelDataNum(int nNum) {m_nNoLabelDataNum = nNum;};
|
||
void ShowMessage();
|
||
|
||
void GetDataTip(CDataTable *pTable);
|
||
|
||
void ClearData();
|
||
void ReadDWG(); // 读取DWG中的数据。
|
||
BOOL AddTip(UINT idControl, const TCHAR *str=NULL);
|
||
|
||
|
||
public:
|
||
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd/*, UINT nID, CCreateContext* pContext = NULL*/);
|
||
|
||
protected:
|
||
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
|
||
virtual void PostNcDestroy(); // default to delete this.
|
||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||
|
||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||
afx_msg void OnClose();
|
||
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
|
||
afx_msg void OnDestroy();
|
||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||
afx_msg void OnBtnSetClick();
|
||
afx_msg void OnBtnUpdate();
|
||
afx_msg void OnBtnFromDWG();
|
||
afx_msg void OnBtnChoseExtent();
|
||
afx_msg void OnPic2dClick();
|
||
afx_msg void OnPic3dClick();
|
||
afx_msg void OnPaint();
|
||
afx_msg LONG_PTR onAcadKeepFocus(UINT_PTR, LONG_PTR);
|
||
afx_msg void OnSetFocus(CWnd* pOldWnd);
|
||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||
protected:
|
||
// 距离尺寸计算函数
|
||
CRect BtnSetRect() const;
|
||
CRect Slide2dRect() const;
|
||
CRect Slide3dRect() const;
|
||
CRect SplitWndRect(const CRect &rectFrame) const;
|
||
CRect TipRect(const CRect &rectFrame) const;
|
||
CRect BtnUpdateRect(const CRect &rectFrame) const;
|
||
CRect BtnFromDWGRect(const CRect &rectFrame) const;
|
||
CRect BtnChoseRect(const CRect &rectFrame) const;
|
||
|
||
|
||
protected:
|
||
enum {IDC_BTN_UPDATE = 1,
|
||
IDC_BTN_FROMDWG,
|
||
IDC_BTN_EXTENT,
|
||
IDC_BTN_SET,
|
||
IDC_IMAGE_2D,
|
||
IDC_IMAGE_3D,
|
||
IDC_LABEL_MESSAGE};
|
||
|
||
CSize m_sizeSet; // 设置按钮的大小
|
||
CSize m_sizeBtnBottom; // 底部三个按钮的大小
|
||
CSize m_sizeSlide; // slide的宽高
|
||
int m_nLabelHei; //提示信息框高度
|
||
|
||
int m_nLeftBlank, m_nRightBlank, m_nTopBlank, m_nBottomBlank; // 上下左右的留空
|
||
// 行间距:上不按钮距离拆分窗口,拆分窗口距离提示信息,提示信息距离底部按钮
|
||
int m_nRowBlank1, m_nRowBlank2, m_nRowBlank3;
|
||
// 列间距(水平方向):设置按钮==slide2d, slide2d==slide3d, 底部按钮之间
|
||
int m_nColBlank1, m_nColBlank2, m_nColBlank3;
|
||
|
||
CButton m_btnSet;
|
||
CSplitFrame *m_pSplitFrame;
|
||
CEdit m_editTip;
|
||
CButton m_btnUpdate, m_btnFromDwg, m_btnChoseExtent;
|
||
CStatic m_pic3d; // 显示三维样式
|
||
CStatic m_pic2d; // 显示二维样式
|
||
CString m_cs2DStyle; // 2D
|
||
CString m_cs3DStyle; // 2D
|
||
CImageDC m_picSlide2d, m_picSlide3d;
|
||
TreeItemData *m_pItemToSlide;
|
||
// CButton m_btnImage;
|
||
CFont font;
|
||
|
||
CFrameData m_dataCenter;
|
||
int m_nConflictDataNum;
|
||
int m_nNoLabelDataNum;
|
||
bool m_bTip[eTipNum];
|
||
|
||
CToolTipCtrl m_wndToolTip;
|
||
};
|
||
|
||
// 树控件的每个选项需要关联一个数据,也用于Grid项,
|
||
// (工程项,本图项,未创建工程,冲突项)、(楼层项)、(某类型)、(某编号)(某子项,代表一个具体的门窗)
|
||
enum ETreeItemType {eProj = 0, eDWG, eNoProj, eConflict, eFloor, eSameStyle, eSameName, eOneItem, eOther};
|
||
class TreeItemData : public WRowData
|
||
{
|
||
protected:
|
||
TreeItemData() {} // 保护型构造函数,防止外部创建该实例
|
||
virtual ~TreeItemData() {} //
|
||
public:
|
||
virtual ETreeItemType GetType()const = 0;
|
||
virtual EEntType GetEntType() const {return eDoorTypeNum;}
|
||
// 此处的2D3D相对并非绝对的2D、3D。对于不同的子类型,该函数代表不同的意义。
|
||
// 注意更新sProp和DWG
|
||
virtual void SetSlideType2d(CString style) {}
|
||
virtual void SetSlideType3d(CString style) {}
|
||
|
||
void SetEntSlide(AcDbObjectId &id, SOpeningProp &sProp, CString strStyle, bool b2dOr3d);
|
||
void SetWidItemSlide(CWidItem *pWidItem, CString strStyle, bool b2dor3d);
|
||
void SetAryWidItemSlide(AryWidItemPtr &aryWidItem, CString strStyle, bool b2dOr3d);
|
||
};
|
||
|
||
class TreeNullItemData : public TreeItemData
|
||
{
|
||
virtual ETreeItemType GetType()const {return eOther;}
|
||
};
|
||
|
||
// 工程内
|
||
class TreeItemProj : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eProj;}
|
||
CDataTable *pTable;
|
||
BOOL bNeedFloor; // 是否需要分楼层
|
||
};
|
||
// 本图内
|
||
class TreeItemDWG : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eDWG;}
|
||
CDataTable *pTable; // 本图
|
||
BOOL bNeedFloor; // 是否需要分楼层
|
||
BOOL bOnlyProj; // 是否仅仅需要本工程的数据 // **
|
||
};
|
||
|
||
// 本图未创建工程
|
||
class TreeItemNoProj : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eNoProj;}
|
||
CDataTable *pTable;
|
||
};
|
||
|
||
// 工程内冲突,工程外冲突,本图冲突
|
||
enum EConflictType {eConflictProj = 0, eConflictNoProj, eConflictDWG, eConflictProjDWG};
|
||
class TreeItemConflict : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eConflict;}
|
||
CDataTable *pTable;
|
||
EConflictType nType; // 工程内冲突,未创建工程的冲突,本图冲突, 工程内本图冲突
|
||
};
|
||
|
||
class TreeItemFloor : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eFloor;}
|
||
CGroup *pFloor; // 某层内的所有门窗
|
||
};
|
||
|
||
// 门、窗、弧窗、...
|
||
class TreeItemSameStyle : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ~TreeItemSameStyle() {ClearAryWidItemPtr(aryWidItemPtr);}
|
||
virtual ETreeItemType GetType()const {return eSameStyle;}
|
||
virtual EEntType GetEntType() const;
|
||
virtual void SetSlideType2d(CString style);
|
||
virtual void SetSlideType3d(CString style);
|
||
AryWidItemPtr aryWidItemPtr; // 该类型所对应的所有的item
|
||
};
|
||
|
||
// 单个名字的节点分为下面的情况:主编号
|
||
class TreeItemSameName : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ~TreeItemSameName() {}
|
||
virtual ETreeItemType GetType()const {return eSameName;}
|
||
virtual EEntType GetEntType() const;
|
||
virtual void SetSlideType2d(CString style);
|
||
virtual void SetSlideType3d(CString style);
|
||
CWidItem widItem; // 该类型所对应的所有的item
|
||
};
|
||
|
||
// 子编号
|
||
class GridItemOneItem : public TreeItemData
|
||
{
|
||
public:
|
||
virtual ETreeItemType GetType()const {return eOneItem;}
|
||
virtual EEntType GetEntType() const;
|
||
virtual void SetSlideType2d(CString style);
|
||
virtual void SetSlideType3d(CString style);
|
||
EEntType eEntType;
|
||
CItem *pItem;
|
||
int nIndex;
|
||
};
|
||
|
||
enum EGridColorIndex {
|
||
eMainLabelColor = 0, // 主编号
|
||
eTypeColor, // 门窗类型编号
|
||
eFloorColor, // 楼层编号
|
||
eChangedColor, // 被修改的数据
|
||
eRemovedColor, // 被删除的数据
|
||
eRemovedTextColor,
|
||
eOtherDWGColor, // 其他DWG图纸中的数据
|
||
eTempLabelColor, // 临时编号的数据
|
||
eOthersPropColor, // 不是自己的属性
|
||
eReadOnlyColor, // 只读的属性
|
||
eRedConflictColor, // 主编号,“冲突”红显
|
||
eColorItemNum // 总的编号的类型数
|
||
};
|
||
// 门窗属性显示表格
|
||
class CPropGrid : public WDGrid
|
||
{
|
||
DECLARE_DYNCREATE(CPropGrid)
|
||
public:
|
||
CPropGrid() : WDGrid(true, 100), m_nCurRow(-1) {}
|
||
void RemoveAllItem();
|
||
void ReCreate(TreeItemData *pItemData); // 绘制
|
||
|
||
void CreateProj(TreeItemProj *pItem);
|
||
void CreateDWG(TreeItemDWG *pItem);
|
||
void CreateNoProj(TreeItemNoProj *pItem);
|
||
void CreateConflict(TreeItemConflict *pItem);
|
||
void CreateFloor(TreeItemFloor *pItem);
|
||
void CreateOneStyle(TreeItemSameStyle *pItem);
|
||
void CreateOneName(TreeItemSameName *pItem);
|
||
|
||
WDGridTreeRow* AddNewRow(WDGridTreeRow *pParentRow);
|
||
// 向列表中添加元素:
|
||
bool AddSingleItem(CItem* pItem, int index, WDGridTreeRow *pParentRow,
|
||
AryEShowItem &aryShowItem, int nEntIndex, CStringArray &aryProp);
|
||
void AddSameNameItem(CWidItem* pWidItem, WDGridTreeRow *pParentRow,
|
||
AryEShowItem &aryShowItem);
|
||
void AddSameTypeItem(AryWidItemPtr &aryWidItemPtr, EEntType eEntType, WDGridTreeRow *pParent,
|
||
AryEShowItem &aryShowItem, BOOL bShowType = TRUE);
|
||
|
||
// 检测某类型是否具有某属性
|
||
static BOOL TestHasShowItem(EEntType eEntTyp, bool bText, EShowItem eShowItem);
|
||
|
||
void SetFlagProp(DWORD dw) {m_flagShowProp = dw;}
|
||
// 设置Grid列信息,通过它来设置列表的列。
|
||
void SetGridColumn(AryEtype &aryEtype, AryEShowItem &aryEShowItem);
|
||
|
||
void UpdateDWG();
|
||
void RefreshGridContent(); // 每个Grid重新提取内容,更新
|
||
void RefreshGridTreeRow(WDGridTreeRow *pRow); // 更新
|
||
|
||
// 第二列之后,第一列和第二列是标签列
|
||
EShowItem GetShowItemIndex(int nCol);
|
||
|
||
//add by lgy 20120301 为了保证修改grid单元格中类型,宽,高等项后
|
||
//要修改对应的新编号单元格的内容
|
||
CString GetItemSerial(const CString strType);
|
||
|
||
protected:
|
||
// 保护成员函数:
|
||
BOOL EmptyGrid() const {return GetColNum() < 2;}
|
||
|
||
// 检测是否有修改过的数据,eCorrespondingTip;
|
||
bool HasModifiedData();
|
||
bool HasModifiedData(WDGridTreeRow *pRow);
|
||
|
||
protected:
|
||
// 虚函数
|
||
// 用来设置颜色
|
||
virtual void OnBeforeRefresh(WDGridCell&cell);
|
||
// 准备combo中的数据
|
||
virtual void OnCellComboString(WDGridCell &cell,CComboBox&combo);
|
||
// 详细的设置一些编辑属性
|
||
virtual bool OnBeforeEdit(WDGridCell&cell,bool &bModified);
|
||
virtual bool OnModified(WDGridCell&cell,CString &text);
|
||
virtual void OnDataChanged();
|
||
|
||
DECLARE_MESSAGE_MAP()
|
||
virtual void OnCurChanged();//当前行列变化,子类一定要调整用基类
|
||
|
||
int m_nCurRow;
|
||
|
||
DWORD m_flagShowProp;
|
||
};
|
||
|
||
class CGridView : public CFormView
|
||
{
|
||
DECLARE_DYNCREATE(CGridView)
|
||
protected:
|
||
CGridView();
|
||
|
||
// Form Data
|
||
public:
|
||
//{{AFX_DATA(CInputView)
|
||
enum { IDD = IDD_DLG_GRIDFORM };
|
||
//}}AFX_DATA
|
||
|
||
void ReCreate(TreeItemData *pItemData); // 绘制
|
||
void UpdateDWG();
|
||
void RefreshGridContent(); // 每个Grid重新提取内容,更新
|
||
void RefreshGrid(); // Grid更新显示的颜色,内容不变
|
||
void Clear() {m_grid.RemoveAllItem();}
|
||
void SelectRow(long i) {if (i < m_grid.GetRowNum()) m_grid.SelectRow(i);}
|
||
// Implementation
|
||
//modify by lgy 20120306 9.0中要求提取图纸之后记录之前修改的页面
|
||
CPropGrid m_grid;
|
||
protected:
|
||
virtual ~CGridView();
|
||
virtual void OnInitialUpdate();
|
||
|
||
// Generated message map functions
|
||
//{{AFX_MSG(CInputView)
|
||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||
//}}AFX_MSG
|
||
DECLARE_MESSAGE_MAP()
|
||
//CPropGrid m_grid;
|
||
};
|
||
|
||
class CDoorWinTreeView : public ::CTreeView
|
||
{
|
||
DECLARE_DYNCREATE(CDoorWinTreeView)
|
||
public:
|
||
CDoorWinTreeView();
|
||
~CDoorWinTreeView();
|
||
|
||
// void SetDoorData();
|
||
void FillTreeView();
|
||
// 取得头分支的名字和扩展数据
|
||
// 0:第一分支名字;1:第二分支名字,2:第三分支名字;3:第四分支名字,如果不存在,返回空。
|
||
static CString GetHeadItemName(int nFlag);
|
||
static CString GetHeadItemName1(int nFlag);
|
||
static TreeItemData* GetHeadItemData(int nFlag);
|
||
static TreeItemData* GetHeadItemData1(int nFlag);
|
||
|
||
void ShowRootView() const;
|
||
void Clear();
|
||
static void SortWidItemAry(AryWidItemPtr &aryWidItemPtr);
|
||
static void SortAryItem(AryItemPtr &aryItemPtr);
|
||
|
||
protected:
|
||
void SetNewStyle(long lStyleMask, BOOL bSetBits);
|
||
|
||
static HTREEITEM AddTreeItem(CItem *pItem, CTreeCtrl &tree, TV_INSERTSTRUCT &tvItem, HTREEITEM hParent);
|
||
static HTREEITEM AddTreeItem(CTreeCtrl &tree, TV_INSERTSTRUCT &tvItem, CString &text, TreeItemData *pData, HTREEITEM hParent);
|
||
static void AddWidItemAry(CTreeCtrl &tree, AryWidItemPtr widItem[eDoorTypeNum], HTREEITEM hItemParent);
|
||
protected:
|
||
virtual void OnDraw(CDC* pDC);
|
||
virtual void OnInitialUpdate();
|
||
virtual void OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
|
||
|
||
// msg
|
||
afx_msg int OnCreate(LPCREATESTRUCT lpcs);
|
||
protected:
|
||
DECLARE_MESSAGE_MAP()
|
||
};
|
||
|
||
// 门窗设置对话框
|
||
class CSetDlg : public GlwCAcUiDialog
|
||
{
|
||
public:
|
||
CSetDlg(CWnd* pParent = NULL);
|
||
~CSetDlg() {}
|
||
enum { IDD = IDD_DLG_DOORWIN_CHECK_SET};
|
||
|
||
int CurrSel() const;
|
||
|
||
public:
|
||
static BOOL CheckCurrDWG() {return m_bCheckCurrDWG;}
|
||
static BOOL CheckCurrProj() {return m_bCheckCurrProj && !IsEmptyProject();}
|
||
static BOOL CheckBlock() {return m_bCheckBlock;}
|
||
static BOOL CheckText() {return m_bCheckText;}
|
||
static BOOL AccordFloor() {return m_bAccordFloor;}
|
||
static BOOL IsZoomDoorWin() {return m_bZoomDoorWin;}
|
||
static BOOL IsShowImag() {return m_bShowImg;}
|
||
|
||
// 供外部调用
|
||
// 检测某类型门窗的某种属性是否被选择了。
|
||
static BOOL TestItemChecked(EEntType eDoorWinCheckType, EShowItem eItem);
|
||
// 检测某类型门窗的是否包含某种属性。
|
||
static BOOL TestHasShowParam(EEntType eDoorWinCheckType, EShowItem eItem);
|
||
|
||
// 测试该标记中是否选中该选项
|
||
static BOOL TestItemIsSet(EShowItem eItem, DWORD flagCheck);
|
||
|
||
// 查看这几个类型都有哪几个参数
|
||
static DWORD GetShowFlag(AryEtype &aryType, AryEShowItem &aryShowItem);
|
||
// 查看这几个类型都有哪几个参数需要显示
|
||
static DWORD GetCheckFlag(AryEtype &aryType, AryEShowItem &aryShowItem);
|
||
static void SetParamFlag(DWORD &dwFlag, int eItem, BOOL bCheck);
|
||
static BOOL CheckParamFlag(DWORD &dwFlag, int eItem);
|
||
|
||
static void LoadCurDoorMsg(); //加载当前门窗检查中设置的信息,信息从dbf中读出来
|
||
void SaveCurDoorMsg(); //保存所需要的参数到DBF中
|
||
protected:
|
||
afx_msg void OnDestroy();
|
||
|
||
afx_msg void OnSelCmbTypeChange();
|
||
afx_msg void OnBtnHelpMsg();
|
||
afx_msg void OnClickDWG();
|
||
afx_msg void OnClickProj();
|
||
DECLARE_MESSAGE_MAP()
|
||
|
||
protected:
|
||
virtual void DoDataExchange(CDataExchange* pDX);
|
||
virtual BOOL OnInitDialog();
|
||
virtual void OnOK();
|
||
virtual void OnCancel();
|
||
|
||
|
||
private:
|
||
BOOL m_bOldCheckDWG;
|
||
BOOL m_bOldCheckProj;
|
||
static BOOL m_bCheckCurrDWG; // 检查本图门窗
|
||
static BOOL m_bCheckCurrProj; // 检查本工程门窗
|
||
static BOOL m_bCheckBlock; // 检查块参照和外部参照
|
||
static BOOL m_bCheckText; // 检查门窗文字
|
||
static BOOL m_bAccordFloor; // 分楼层显示
|
||
static BOOL m_bZoomDoorWin; // 门窗放大显示
|
||
static BOOL m_bShowImg; // 显示二维、三维样式
|
||
|
||
static CString m_strCurrChose;
|
||
static int m_nCurrSel; // 记录之前的选择
|
||
|
||
CComboBox m_cmbType; // 门窗类型分类
|
||
CListCtrl m_lstParm;// 显示参数
|
||
|
||
CButton m_btnCheckFloor; // 是否勾选分层显示;
|
||
CButton m_btnCheckText; // 检查文字按钮
|
||
CButton m_btnCheckBlock; // 检查快按钮
|
||
CButton m_btnCheckDWG; // 检查本图
|
||
CButton m_btnCheckProj; // 检查本工程
|
||
CButton m_btnShowImg; // 显示二维、三维样式。
|
||
|
||
|
||
// 检测某类型门窗的某种属性是否被选择了。
|
||
BOOL IsChecked(EEntType eDoorWinCheckType, EShowItem eItem) const;
|
||
// 设置某类型门窗的某种属性被选择与否。
|
||
void SetCheck(EEntType eDoorWinCheckType, int eItem/*EDoorWinShowType组合*/, BOOL bCheck);
|
||
// 检测某类型门窗的是否包含某种属性。
|
||
BOOL HasShowParam(EEntType eDoorWinCheckType, EShowItem eItem) const;
|
||
// 设置某类型门窗包含某种属性。
|
||
void SetShowParam(EEntType eDoorWinCheckType, int eItem/*EDoorWinShowType组合*/, BOOL bHas);
|
||
void GetCheckParam(int nSel);
|
||
void InitCheckParam(int nSel);
|
||
|
||
// 显示参数,是否选中
|
||
static DWORD m_flagShowParam1[eDoorTypeNum][2]; // 每种类型那些参数是要求选中的
|
||
DWORD m_flagShowParam[eDoorTypeNum][2]; // 当前的,用来控制是否保存
|
||
};
|
||
};
|