Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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