#if !defined(AFX_BLOCKMANDLG_H__2695D869_F6F4_4445_8E67_6C26212746AE__INCLUDED_) #define AFX_BLOCKMANDLG_H__2695D869_F6F4_4445_8E67_6C26212746AE__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // BlockManDlg.h : header file // #define BLK_LIST_LAST -10 ///////////////////////////////////////////////////////////////////////////// // CBlockManDlg dialog #include "tkimagedlg.h" class CBlockManDlg : public CTKImageDlg { protected: DList m_lstBlk; //当前的构件列表 XStringList m_lstKindNames, m_lstCopyBlk, m_lstCopyDesName; //当前所有类别的名字 XString m_xskindFilter; //当前的类别 CString m_csCopyTKFile; //复制 XString m_xsFileName; //文件名称 XStringList m_lstBlbNames; //最近使用的库列表 BOOL m_bCellIsDragging, m_bNodeIsDragging; // 拖动状态 HTREEITEM m_dragTarget; // 拖动目标 HTREEITEM m_dragItem; // 拖动树节点 int m_nMenuItem; //系统库当前项 public: CImageList m_imageList; CImageList m_imageTree; HTREEITEM m_hOldItem; int m_nOpenMode; //打开模式 权限 0 > 1 > 2 XString m_sIconArrangement; //没有用到 CString m_csTKName, m_csTKAllName; BOOL m_bInitReady; //是否初始化完毕 XString m_xsLibName; XString m_xsBlkName; //add by xlc on 081008 CMenu m_menu; // Construction public: DECLARE_DYNAMIC(CBlockManDlg) CBlockManDlg(CWnd* pParent = NULL); // standard constructor CBlockManDlg(const TCHAR* szLibName, int nOpenMode, CWnd* pParent = NULL); // constructor CBlockManDlg(const TCHAR* szLibName, int nOpenMode, const TCHAR* szBlkName, CWnd* pParent = NULL); // constructor // Dialog Data //{{AFX_DATA(CBlkManDlg) enum { IDD = IDD_DLG_BLOCK }; //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CBlockManDlg) public: virtual BOOL PreTranslateMessage(MSG* pMsg); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); //}}AFX_VIRTUAL public: void GetPath(XString &sFilePath); void GetFilterList(); int SaveStatus(); //保存当前状态 int SaveStatus2(); //保存当前状态 mode = 1,2 int LoadStatus(TCHAR *strBlb,TCHAR *strFilter,int &index); int LoadStatus2(TCHAR *strBlb,TCHAR *strFilter,int &index); void LoadStatus3(TCHAR *strFilter); BOOL ReadFile(); //读文件取出符合条件的项 void InitBaseData(); BOOL SelectDbfFile(BOOL bHasParent); //选择库管理文件 BOOL OnSelectRecentBlb(UINT nID); void OnSelectlib(); int ChoseImage(const TCHAR* szDrawing); // 建图块 int AddImage(PickSet &ss, XPoint &basePt, const TCHAR* szDrawing); BOOL getLocationFromDB(const TCHAR* szDrawing, CString &str); BOOL ReplaceLibrary(); void CheckBak(const TCHAR* szFile); BOOL GetBlockName(XString &sName); int GetTotalRecords();//取得当前链表的节点个数 int GetCurRecord(DwbStruct &ds); virtual void SwapFlipImage(int from_image, int to_image); // Implementation protected: void InitToolBar(); void SetupTreeView(); void SetupListView(); CString SelectTKFile(BOOL bCreateTK); BOOL SetNewType(const TCHAR* szDragTaget); void ClearBkColor(); void OnSelectSysLib(const TCHAR* szTkName); HTREEITEM FindTreeNode(HTREEITEM hItem, const TCHAR* szNode); const XString GetNodeAllPath(HTREEITEM myhtree); void CopyCell(const TCHAR* szText); // 复制图块 void DelCell(); int DelKind(const TCHAR* szFilter, int bIsDel); void FindBlk(const TCHAR* szFindName); void GotoFindCell(int index); void ReplaceBlock(int nControlFlag, Entity &ent, AcDbObjectId &idBlock); int ReplaceBlk(const DwbStruct &rec); void SetupNthImage(int index, CImageDC* pImageDC); void ResetStateText(); // Generated message map functions //{{AFX_MSG(CBlockManDlg) virtual BOOL OnInitDialog(); virtual void OnOK(); afx_msg void OnSelchangedTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnItemchangedTkList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); afx_msg void OnBeginlabeleditTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnBeginlabeleditTkList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnEndlabeleditTkList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnEndlabeleditTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnClickTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnRclickTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnBegindragTkTree(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnTkPopupNew(); afx_msg void OnTkPopupDel(); afx_msg void OnTkPopupRenamekind(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnClose(); afx_msg void OnBlkFind(); afx_msg void OnBlkDel(); afx_msg void OnBlkNext(); afx_msg void OnBlkPrevious(); afx_msg void OnBlkNewDwg(); afx_msg void OnBlkUpgrade(); afx_msg void OnBlkNewlib(); afx_msg void OnBlkRename(); afx_msg void OnBlkLayout(); afx_msg void OnBlkRebuild(); afx_msg void OnBlkReplace(); afx_msg void OnBlkSort(); afx_msg void OnToolbarDropDown(NMHDR* pnmh, LRESULT* plRes); afx_msg void OnRclickTkList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnClickTkList(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnBlkImport(); afx_msg void OnBlkExporttk(); afx_msg void OnBlkCopy(); afx_msg void OnBlkPaste(); afx_msg void OnUpdateSort(CCmdUI* pCmdUI); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_BLOCKMANDLG_H__2695D869_F6F4_4445_8E67_6C26212746AE__INCLUDED_)