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

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);
}