Files
envi-code/SourceCode/Code2026/PipelineCmd/CISODimDlg.cpp
T
2026-09-28 15:28:50 +08:00

137 lines
2.5 KiB
C++

#include "stdafx.h"
#include "CISODimDlg.h"
#include "KTModelLayoutXData.h"
#include "EarThwormDef.h"
IMPLEMENT_DYNAMIC(CISODimDlg, CDialog)
CISODimDlg::CISODimDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_ISODIMDLG, pParent)
, m_sDimTxt(_T(""))
, m_nView(0)
, m_nAngle(FALSE)
, m_bDimTxtNotISO(1)
, m_sScale(_T("1:100"))
, m_dTxtH(2.5)
, m_sTxtStyle(_T("Pipe_Dim"))
{
AecDbObjXDataMap xDataMap;
if (KTModelLayoutXData::ReadModelXData(KT_PIPEINIT, xDataMap))
xDataMap.GetAt(DOC_SCALE, m_sScale);
}
CISODimDlg::~CISODimDlg()
{
}
void CISODimDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_sDimTxt);
DDX_Radio(pDX, IDC_RADIO1, m_nView);
DDX_Radio(pDX, IDC_RADIO30, m_nAngle);
DDX_Check(pDX, IDC_CHECK3, m_bDimTxtNotISO);
DDX_CBString(pDX, IDC_COMBOSCALE, m_sScale);
DDX_Text(pDX, IDC_EDIT3, m_dTxtH);
DDX_CBString(pDX, IDC_COMBO1, m_sTxtStyle);
DDX_Control(pDX, IDC_COMBO1, m_wndTextStyleCombo);
}
BEGIN_MESSAGE_MAP(CISODimDlg, CDialog)
ON_MESSAGE(WM_ACAD_KEEPFOCUS, &CISODimDlg::onAcadKeepFocus)
ON_WM_CLOSE()
END_MESSAGE_MAP()
LONG_PTR CISODimDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR)
{
POINT pt;
::GetCursorPos(&pt);
CRect rect;
GetWindowRect(&rect);
if (!(rect.PtInRect(pt)))
{
return FALSE;
}
return TRUE;
}
BOOL CISODimDlg::OnInitDialog()
{
CDialog::OnInitDialog();
AcAxDocLock lock;
m_wndTextStyleCombo.init();
int nSel = m_wndTextStyleCombo.FindString(0, m_sTxtStyle);
if (nSel != -1)
{
m_wndTextStyleCombo.SetCurSel(nSel);
}
UpdateData(FALSE);
return TRUE;
}
void CISODimDlg::SetDimText(CString &sDimTxt)
{
if (::IsWindow(m_hWnd))
{
UpdateData(TRUE);
}
m_sDimTxt = sDimTxt;
if (::IsWindow(m_hWnd))
{
UpdateData(FALSE);
}
}
double CISODimDlg::getPScale()
{
if (::IsWindow(m_hWnd))
{
UpdateData(TRUE);
}
double dPScale(100.);
int idx = m_sScale.Find(':');
if (idx != -1)
{
m_sScale = m_sScale.Right(m_sScale.GetLength() - idx - 1);
dPScale = _ttof(m_sScale);
}
return dPScale;
}
double CISODimDlg::GetTxtStyleH(AcDbObjectId& idStyle)
{
if (::IsWindow(m_hWnd))
{
UpdateData(TRUE);
}
if (m_dTxtH < 1.e-3)
{
AfxMessageBox(_T("文字高度太小!"));
idStyle = acdbCurDwg()->textstyle();
return 2.5;
}
int nSel = m_wndTextStyleCombo.GetCurSel();
if (nSel == -1)
{
AfxMessageBox(_T("请选择文字样式!"));
idStyle = acdbCurDwg()->textstyle();
return 2.5;
}
idStyle = m_wndTextStyleCombo.getTextStyleID();
return m_dTxtH;
}
void CISODimDlg::OnClose()
{
ShowWindow(SW_HIDE);
}