Files
envi-code/SourceCode/Code2026/tg_shs/shs_blklib/BlockManDlg.h
T
2026-09-28 15:28:50 +08:00

168 lines
5.6 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_)