#include "stdafx.h" #include "DishDlg.h" #include "EarThwormDef.h" IMPLEMENT_DYNAMIC(CDishDlg, CDialog) CDishDlg::CDishDlg(CWnd* pParent /*=NULL*/) : CDialog(CDishDlg::IDD, pParent) , m_dD(1000) , m_dH(250) , m_pData(NULL) , m_clr(256) , m_bSub(FALSE) { GET_CACHE(CDishDlg, %f%f%d, &m_dD, &m_dH, &m_clr); } CDishDlg::~CDishDlg() { } void CDishDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDITD, m_dD); DDX_Text(pDX, IDC_EDITH, m_dH); DDX_Check(pDX, IDC_CHECK_SUB, m_bSub); } BEGIN_MESSAGE_MAP(CDishDlg, CDialog) ON_BN_CLICKED(IDOK, &CDishDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_STATIC_COLOR, OnStaticColor) ON_WM_CTLCOLOR() END_MESSAGE_MAP() void CDishDlg::OnBnClickedOk() { UpdateData(); if (m_dD < 1.e-3 || m_dH < 1.e-3) { AfxMessageBox(_T("封头尺寸必须大于0!请重新输入封头尺寸!")); return; } if (m_pData != NULL) { AecEqui::XDish* pDish = (AecEqui::XDish*)m_pData; if (pDish != NULL) { pDish->dD = m_dD; pDish->dH = m_dH; } } SET_CACHE(CDishDlg, %f%f%d, m_dD, m_dH, m_clr); OnOK(); } BOOL CDishDlg::OnInitDialog() { CDialog::OnInitDialog(); if (m_pData != NULL) { AecEqui::XDish* pDish = (AecEqui::XDish*)m_pData; if (pDish != NULL) { m_dD = pDish->dD; m_dH = pDish->dH; } } UpdateData(FALSE); return TRUE; } void CDishDlg::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 CDishDlg::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, m_clr); } } return hbr; }