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

104 lines
2.0 KiB
C++

#include "stdafx.h"
#include "BoxDlg.h"
#include "EarThwormDef.h"
IMPLEMENT_DYNAMIC(CBoxDlg, CDialog)
CBoxDlg::CBoxDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBoxDlg::IDD, pParent)
, m_dX(100)
, m_dY(100)
, m_dZ(100)
, m_pData(NULL)
, m_clr(256)
, m_bSub(FALSE)
{
GET_CACHE(CBoxDlg, %f%f%f%d, &m_dX, &m_dY, &m_dZ, &m_clr);
}
CBoxDlg::~CBoxDlg()
{
}
void CBoxDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDITX, m_dX);
DDX_Text(pDX, IDC_EDITY, m_dY);
DDX_Text(pDX, IDC_EDITZ, m_dZ);
DDX_Check(pDX, IDC_CHECK_SUB, m_bSub);
}
BEGIN_MESSAGE_MAP(CBoxDlg, CDialog)
ON_BN_CLICKED(IDOK, &CBoxDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_STATIC_COLOR, OnStaticColor)
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
BOOL CBoxDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if (m_pData != NULL)
{
AecEqui::XBox* pBox = (AecEqui::XBox*)m_pData;
m_dX = pBox->dL;
m_dY = pBox->dW;
m_dZ = pBox->dH;
}
UpdateData(FALSE);
return TRUE;
}
void CBoxDlg::OnBnClickedOk()
{
UpdateData();
if ( fabs(m_dX) < 1.e-3 ||
fabs(m_dY) < 1.e-3 ||
fabs(m_dZ) < 1.e-3 )
{
AfxMessageBox(_T("长宽高不能为0,请输入长宽高的数值!"));
return;
}
if (m_pData != NULL)
{
AecEqui::XBox* pBox = (AecEqui::XBox*)m_pData;
pBox->dL = m_dX;
pBox->dW = m_dY;
pBox->dH = m_dZ;
}
SET_CACHE(CBoxDlg, %f%f%f%d, m_dX, m_dY, m_dZ, m_clr);
OnOK();
}
void CBoxDlg::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 CBoxDlg::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;
}