137 lines
2.5 KiB
C++
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);
|
|
}
|