#if !defined(__DLGPARAMINSERT_H__) #define __DLGPARAMINSERT_H__ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "resource.h" #include "InPlaceCtrls.h" #include "PropertyListBox.h" #include "KTObjLifeMgr.h" #include "KTParamClass.h" #include "GsPreviewCtrl.h" class CDlgParamInsert : public CDialog { public: CDlgParamInsert(CWnd* pParent = NULL); void SetClassCode(ULONG lId); void SetClassCode(LPCTSTR pszCode); protected: void OnInitClassList(ULONG lUpId, LPCTSTR pszPrefix); // 转换数据类型到Item的类型 CPropertyItem::ItemStyle AsItemStyle(LPCTSTR pszDataType, BOOL bMulti = FALSE, BOOL bOverride = FALSE); // 转换数据为指定Item类型的数据 LPCTSTR AsItemString(CString& sData, LPCTSTR pszDataType); // 转换数据为指定的描述字符串 LPCTSTR AsItemDesc(CString& sDesc, LPCTSTR pszData, LPCTSTR pszVarDesc, const CMapStringToString& mapVarToValue); // 转换描述为指定的数据字符串 LPCTSTR ByItemDesc(CString& sData, LPCTSTR pszDesc, LPCTSTR pszVarDesc, const CMapStringToString& mapVarToValue); // 根据表达式获得数据列表 void GetAvalidValueList(LPCTSTR pszValueExpress, const CMapStringToString& mapData, CStringArray& arsValue); // 显示指定Id的所有属性包括父属性 void OnShowAttributeAttrItems(CPropertyItemTab* pTab, ULONG lId); // 清除属性列表数据 void OnCleanAttributeList(); static BOOL ExpressCalcVarProc(LPCTSTR pszVariable, double& dValue, WPARAM wParam, LPARAM lParam); BOOL m_bAttrModified; ULONG m_lAttributesCount; //AcDbDatabase* m_pDbPreview; KTParamClass m_cClassData; CMapStringToString m_mapAttrToValue; typedef CMap CMapULongToAttribute; CMapULongToAttribute m_mapHideAttribute; protected: enum { IDD = IDD_PARAMINSERT }; CComboBox m_wndCmbClass; CButton m_wndRadBlock; CButton m_wndRadGroup; //CKTObjViewCtrl m_wndStcPreview; CGsPreviewCtrl m_wndViewCtrl; CStatic m_wndStcDesc; CPropertyListBox m_wndLstAttribute; //}}AFX_DATA //{{AFX_VIRTUAL(CDlgParamInsert) public: virtual BOOL Create(CWnd* pParentWnd); protected: virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL protected: //{{AFX_MSG(CDlgParamInsert) virtual BOOL OnInitDialog(); afx_msg void OnDestroy(); virtual void OnOK(); afx_msg void OnBtnPreview(); afx_msg void OnSelendokCmbClass(); //}}AFX_MSG afx_msg LRESULT OnPropListBoxNotify(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} #endif // !defined(__DLGPARAMINSERT_H__)