109 lines
2.3 KiB
C++
109 lines
2.3 KiB
C++
#include "stdafx.h"
|
|
#include "TydfDlg.h"
|
|
#include "PipelineTools.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CTydfDlg, CDialog)
|
|
|
|
CTydfDlg::CTydfDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CTydfDlg::IDD, pParent)
|
|
, m_dH(400)
|
|
, m_dR(100)
|
|
, m_dW(500)
|
|
, m_dL(500)
|
|
, m_dXOffset(0)
|
|
, m_pData(NULL)
|
|
, m_clr(256)
|
|
, m_bSub(FALSE)
|
|
{
|
|
GET_CACHE(CTydfDlg, %f%f%f%f%f%d, &m_dH, &m_dR, &m_dW, &m_dL, &m_dXOffset, &m_clr);
|
|
}
|
|
|
|
CTydfDlg::~CTydfDlg()
|
|
{
|
|
}
|
|
|
|
void CTydfDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDITH, m_dH);
|
|
DDX_Text(pDX, IDC_EDITR, m_dR);
|
|
DDX_Text(pDX, IDC_EDITW, m_dW);
|
|
DDX_Text(pDX, IDC_EDITL, m_dL);
|
|
DDX_Text(pDX, IDC_EDITXOFFSET, m_dXOffset);
|
|
DDX_Check(pDX, IDC_CHECK_SUB, m_bSub);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CTydfDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CTydfDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_STATIC_COLOR, OnStaticColor)
|
|
ON_WM_CTLCOLOR()
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CTydfDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
if (m_pData != NULL)
|
|
{
|
|
AecEqui::XTydf* pTydf = (AecEqui::XTydf*)m_pData;
|
|
m_dH = pTydf->dH;
|
|
m_dR = pTydf->dTR;
|
|
m_dL = pTydf->dTL;
|
|
m_dW = pTydf->dTW;
|
|
m_dXOffset = pTydf->dXOffset;
|
|
}
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CTydfDlg::OnBnClickedOk()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_dH < 1.e-3 || m_dR < 1.e-3 || m_dW < 1.e-3 || m_dL < 1.e-3)
|
|
{
|
|
AfxMessageBox(_T("天圆地方的尺寸不能为0,请重新输入参数!"));
|
|
return;
|
|
}
|
|
|
|
if (m_pData != NULL)
|
|
{
|
|
AecEqui::XTydf* pTydf = (AecEqui::XTydf*)m_pData;
|
|
pTydf->dH = m_dH;
|
|
pTydf->dTR = m_dR;
|
|
pTydf->dTL = m_dL;
|
|
pTydf->dTW = m_dW;
|
|
pTydf->dXOffset = m_dXOffset;
|
|
}
|
|
SET_CACHE(CTydfDlg, %f%f%f%f%f%d, m_dH, m_dR, m_dW, m_dL, m_dXOffset, m_clr);
|
|
OnOK();
|
|
}
|
|
|
|
void CTydfDlg::OnStaticColor()
|
|
{
|
|
AcCmColor clr;
|
|
#if ARX < 24
|
|
clr.setColorMethod(AcCmEntityColor::kByACI);
|
|
#endif
|
|
clr.setColorIndex(256);
|
|
if (acedSetColorDialogTrueColor(clr, Adesk::kTrue, clr, (AcCm::DialogTabs)(AcCm::kACITab)) == Adesk::kFalse) return;
|
|
m_clr = clr.colorIndex();
|
|
Invalidate();
|
|
}
|
|
|
|
HBRUSH CTydfDlg::OnCtlColor(CDC * pDC, CWnd * pWnd, UINT nCtlColor)
|
|
{
|
|
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
if (nCtlColor == CTLCOLOR_STATIC)
|
|
{
|
|
if (pWnd != NULL && pWnd->GetDlgCtrlID() == IDC_STATIC_COLOR)
|
|
{
|
|
CRect rc;
|
|
pWnd->GetClientRect(rc);
|
|
pDC->FillSolidRect(rc, acedGetRGB(m_clr));
|
|
}
|
|
}
|
|
return hbr;
|
|
}
|