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