221 lines
5.6 KiB
C++
221 lines
5.6 KiB
C++
#ifndef AFX_CDRAWINGLIST
|
|
#define AFX_CDRAWINGLIST
|
|
|
|
#pragma once
|
|
|
|
#include "resource.h"
|
|
#include "adui.h"
|
|
#include "acui.h"
|
|
#include "afxcmn.h"
|
|
|
|
|
|
class TDbSheet;
|
|
///////////////////////////////////////////////////
|
|
class TDrawing
|
|
{
|
|
public:
|
|
CString m_sNo; // 图号
|
|
CString m_sName; // 图纸名称
|
|
CString m_sPageSize; // 图幅
|
|
|
|
bool operator <(const TDrawing&d){
|
|
return CmpLabel(m_sName,d.m_sName)<0;}
|
|
bool operator >(const TDrawing&d){return !((*this)<d);}
|
|
|
|
//TDrawing(const TDrawing &src):m_sNo(src.m_sNo), m_sName(src.m_sName), m_sPageSize(src.m_sPageSize){}
|
|
static int SortByNo(const TDrawing *p1, const TDrawing *p2)
|
|
{
|
|
TDrawing *pp1 = (TDrawing *)p1,
|
|
*pp2 = (TDrawing *)p2;
|
|
return CmpLabel(pp1->m_sNo, pp2->m_sNo);
|
|
}
|
|
};
|
|
|
|
class TRowXData : public WRowData
|
|
{
|
|
public:
|
|
int m_iModel; // 每幅图模型空间包含图幅数
|
|
int m_iPaper; // 每幅图图纸空间包含图幅数
|
|
CString m_sFilePath; // 文件路径名(全名)
|
|
PDList<TDrawing> m_lstModels; // 模型空间图纸表
|
|
PDList<TDrawing> m_lstPapers; // 图纸空间图纸表
|
|
PDList<TDrawing> m_lstSpaces; // 需要显示的的图纸表
|
|
};
|
|
class DrawingFileWDGrid : public WDGrid
|
|
{
|
|
public:
|
|
DrawingFileWDGrid(){SetNoAppendButton();SetNoDefaultMenu();}
|
|
protected:
|
|
virtual bool OnBeforeInsertRow(long i,WDGridRow*&pNewRow)//禁止其它增加行操作
|
|
{
|
|
if (pNewRow!=NULL)
|
|
delete pNewRow;
|
|
return false;
|
|
}
|
|
};
|
|
class DrawingListWDGrid : public WDGrid
|
|
{
|
|
protected:
|
|
void Compositor();
|
|
virtual void OnDataChanged();
|
|
};
|
|
|
|
///////////////////////////////////////////////////
|
|
// CDrawingList 对话框
|
|
class CDrawingList : public CAcUiDialog
|
|
{
|
|
DECLARE_DYNAMIC(CDrawingList)
|
|
|
|
public:
|
|
CDrawingList(CWnd* pParent = NULL); // 标准构造函数
|
|
virtual ~CDrawingList();
|
|
//{{AFX_DATA
|
|
enum { IDD = IDD_TITLE_LIST };
|
|
BOOL m_bModel;
|
|
BOOL m_bPaper;
|
|
//}}AFX_DATA
|
|
protected:
|
|
//{{AFX_VIRTUAL
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
//}}AFX_VIRTUAL
|
|
//{{AFX_MSG
|
|
afx_msg void OnBnClickedAddFile();
|
|
afx_msg void OnBnClickedDeleteFile();
|
|
afx_msg void OnBnClickedCheckModel();
|
|
afx_msg void OnBnClickedCheckPaper();
|
|
afx_msg void OnBnClickedButtonSheetName();
|
|
afx_msg void OnPaint();
|
|
//add by xlc on 090224
|
|
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
|
|
//}}AFX_MSG
|
|
|
|
private:
|
|
DrawingFileWDGrid m_grid;
|
|
|
|
//add by xlc on 080908
|
|
XString m_strBlockName;
|
|
CImageDCEx m_image;
|
|
BOOL GetBlockName(XString &sBlockName);
|
|
void UpdatePreview();
|
|
// 关键注册位置,
|
|
BOOL GetRegLocation(XString &sRegLoc) const;
|
|
// 从注册表读入参数
|
|
BOOL ReadParamFromRegistry();
|
|
// 把最近的参数写入注册表
|
|
BOOL WriteParamToRegistry();
|
|
|
|
void InitGrid();
|
|
void GroupToGrid(TProjectGroupItem *pGroup);
|
|
void UpdateSpace();
|
|
void UpdateRow(int iRow, CString &szFileName, TRowXData *pXD);
|
|
void GetRowXData(const TCHAR *fpath, TRowXData *&pXD);
|
|
void GetOneDwgData(const TCHAR* fname, PDList<TDrawing> &lstMSpace, PDList<TDrawing> &lstPSpace);
|
|
BOOL GetOneRecordData(AcDbBlockTableRecord *pRecord, PDList<TDrawing> &lstSpace);
|
|
BOOL GetBlockAttribute(AcDbBlockReference *pRef, TDrawing *&pDrawing);
|
|
BOOL GetLastDrawingList();
|
|
CString GetNumberString(int iModel, int iPaper);
|
|
//////////////////////////////////////////////
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////
|
|
#pragma once
|
|
|
|
|
|
// CDrawingListNext 对话框
|
|
|
|
class CDrawingListNext : public CAcUiDialog
|
|
{
|
|
DECLARE_DYNAMIC(CDrawingListNext)
|
|
|
|
public:
|
|
CDrawingListNext(WDGrid &grid, CWnd* pParent = NULL); // 标准构造函数
|
|
virtual ~CDrawingListNext();
|
|
|
|
// 对话框数据
|
|
enum { IDD = IDD_TITLE_LISTNEXT };
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnBnClickedReturn();
|
|
afx_msg void OnOK();
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg void OnBnClickedCompositor();
|
|
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
|
|
|
private:
|
|
DrawingListWDGrid m_grid;
|
|
BOOL m_bInit;
|
|
CSize m_size;
|
|
UINT m_cxOldSize;
|
|
UINT m_cyOldSize;
|
|
BOOL m_bCompositor;
|
|
CStringArray m_szArNo;
|
|
void InitGrid();
|
|
void ResetSize(int cx, int cy);
|
|
BOOL GetSheet(TDbSheet *&pSheet);
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CGridSheetDlg dialog
|
|
class TSheetGrid:public WDGrid
|
|
{
|
|
public:
|
|
TDbSheet *m_pSheet;
|
|
int m_nRowNum; //表头行数,表头不能被删除
|
|
void Read(TDbSheet*pSheet);
|
|
void Save();
|
|
|
|
//行事件
|
|
virtual bool OnBeforeInsertRow(long i,WDGridRow*&pNewRow);
|
|
virtual bool OnBeforeDeleteRow();
|
|
};
|
|
class CGridSheetDlg : public CAcUiDialog
|
|
{
|
|
DECLARE_DYNAMIC(CGridSheetDlg)
|
|
// Construction
|
|
public:
|
|
CGridSheetDlg(TDbSheet *pSheet, CWnd* pParent = NULL); // standard constructor
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CGridSheetDlg)
|
|
enum { IDD = IDD_DLG_SHEET };
|
|
TSheetGrid m_grid;
|
|
//}}AFX_DATA
|
|
|
|
TDbSheet *m_pSheet;
|
|
CSize sizeDlg;
|
|
BOOL m_bInit;
|
|
BOOL m_bAddFlag;
|
|
DList<int> lstSelCol;
|
|
int m_nRowNum; //表头行数,表头不能被删除
|
|
|
|
UINT m_nOldSizeX, m_nOldSizeY;
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CGridSheetDlg)
|
|
public:
|
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
void ResetSize();
|
|
virtual void ConfigGrid();//virtual by whl
|
|
virtual void OnOK();
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CGridSheetDlg)
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
#endif |