143 lines
4.0 KiB
C++
143 lines
4.0 KiB
C++
// DimAxisLabelDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "resource.h"
|
|
#include "DimAxisLabelDlg.h"
|
|
|
|
GEOAPI int DisplaySlide(CWnd *pWnd, const char *pszSlide);
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CDimAxisLabelDlg dialog
|
|
|
|
|
|
CDimAxisLabelDlg::CDimAxisLabelDlg(CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CDimAxisLabelDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CDimAxisLabelDlg)
|
|
m_dimFlag = 0;
|
|
m_labelFlag = 0;
|
|
m_csLabel = _T("");
|
|
m_bPrevLink = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CDimAxisLabelDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CDimAxisLabelDlg)
|
|
DDX_Radio(pDX, IDC_CURDIM, m_dimFlag);
|
|
DDX_Radio(pDX, IDC_CURLABEL, m_labelFlag);
|
|
DDX_Text(pDX, IDC_LABEL, m_csLabel);
|
|
DDX_Check(pDX, IDC_PREVLINK, m_bPrevLink);
|
|
//}}AFX_DATA_MAP
|
|
if(!pDX->m_bSaveAndValidate) {
|
|
GetDlgItem(IDC_LABEL)->EnableWindow(!m_bPrevLink);
|
|
ShowSlide();
|
|
}
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CDimAxisLabelDlg, CModelessDialog)
|
|
//{{AFX_MSG_MAP(CDimAxisLabelDlg)
|
|
ON_WM_PAINT()
|
|
ON_BN_CLICKED(IDC_PREVLINK, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_CURDIM, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_OTHERDIM, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_BOTHDIM, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_CURLABEL, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_OTHERLABEL, OnDlgItemChange)
|
|
ON_BN_CLICKED(IDC_BOTHLABEL, OnDlgItemChange)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CDimAxisLabelDlg message handlers
|
|
|
|
BOOL CDimAxisLabelDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CDimAxisLabelDlg::ShowSlide()
|
|
{
|
|
XString m_strFilePath;
|
|
CWnd *pImageBox=GetDlgItem(IDC_SLIDE);
|
|
if(pImageBox) {
|
|
// 1--当前轴标,当前尺寸
|
|
// 2--另一轴标,当前尺寸
|
|
// 3--两侧轴标,当前尺寸
|
|
// 4--当前轴标,另一尺寸
|
|
// 5--另一轴标,另一尺寸
|
|
// 6--两侧轴标,另一尺寸
|
|
// 7--当前轴标,双侧尺寸
|
|
// 8--另一轴标,双侧尺寸
|
|
// 9--两侧轴标,双侧尺寸
|
|
int nIdx=0;
|
|
if(m_labelFlag==0 && m_dimFlag==0) nIdx=1;
|
|
else if(m_labelFlag==1 && m_dimFlag==0) nIdx=2;
|
|
else if(m_labelFlag==2 && m_dimFlag==0) nIdx=3;
|
|
else if(m_labelFlag==0 && m_dimFlag==1) nIdx=4;
|
|
else if(m_labelFlag==1 && m_dimFlag==1) nIdx=5;
|
|
else if(m_labelFlag==2 && m_dimFlag==1) nIdx=6;
|
|
else if(m_labelFlag==0 && m_dimFlag==2) nIdx=7;
|
|
else if(m_labelFlag==1 && m_dimFlag==2) nIdx=8;
|
|
else if(m_labelFlag==2 && m_dimFlag==2) nIdx=9;
|
|
XString sLabelSlide;
|
|
sLabelSlide << "AxisLab" << nIdx;
|
|
//if(!FindFile(sLabelSlide, m_strFilePath)) {
|
|
// return;
|
|
//}
|
|
m_strFilePath << "TArch(" << sLabelSlide << ")";
|
|
|
|
CDC *pDC=pImageBox->GetDC();
|
|
CRect rc;
|
|
pImageBox->GetClientRect(&rc);
|
|
m_slideDc.InitDC(pDC, rc, GetAcadBackColor());
|
|
m_slideDc.PaintSlide(m_strFilePath);
|
|
m_slideDc.SetDC(NULL);
|
|
pImageBox->ReleaseDC(pDC);
|
|
//DisplaySlide(pImageBox, sLabelSlide);
|
|
}
|
|
}
|
|
|
|
|
|
void CDimAxisLabelDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
CRect rcClip, rcImage;
|
|
dc.GetClipBox(&rcClip);
|
|
CWnd *pImageBox=GetDlgItem(IDC_SLIDE);
|
|
if(pImageBox) {
|
|
pImageBox->GetWindowRect(&rcImage);
|
|
ScreenToClient(&rcImage);
|
|
if(!rcImage.IntersectRect(&rcImage, &rcClip))
|
|
return;
|
|
CDC *pDC=pImageBox->GetDC();
|
|
m_slideDc.SetDC(pDC);
|
|
m_slideDc.Redraw();
|
|
m_slideDc.SetDC(NULL);
|
|
pImageBox->ReleaseDC(pDC);
|
|
}
|
|
// Do not call CDialog::OnPaint() for painting messages
|
|
}
|
|
|
|
|
|
void CDimAxisLabelDlg::OnDlgItemChange()
|
|
{
|
|
UpdateData(TRUE);
|
|
UpdateData(FALSE);
|
|
}
|