168 lines
5.7 KiB
C++
168 lines
5.7 KiB
C++
#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<DwbStruct> 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_)
|