Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

125 lines
2.6 KiB
C++

#include "stdafx.h"
#include "ConeDLg.h"
#include "EarThwormDef.h"
IMPLEMENT_DYNAMIC(CConeDLg, CDialog)
CConeDLg::CConeDLg(CWnd* pParent /*=NULL*/)
: CDialog(CConeDLg::IDD, pParent)
, m_dr(100)
, m_dR(300)
, m_dH(400)
, m_dXOffset(0)
, m_bIs90Tr(FALSE)
, m_pData(NULL)
, m_clr(256)
, m_bSub(FALSE)
{
GET_CACHE(CConeDLg, %f%f%f%f%d%d, &m_dr, &m_dR, &m_dH, &m_dXOffset, &m_bIs90Tr, &m_clr);
return;
}
CConeDLg::~CConeDLg()
{
}
void CConeDLg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDITR1, m_dr);
DDX_Text(pDX, IDC_EDITR2, m_dR);
DDX_Text(pDX, IDC_EDITH, m_dH);
DDX_Text(pDX, IDC_EDITXOFFSET, m_dXOffset);
DDX_Check(pDX, IDC_CHECK90, m_bIs90Tr);
DDX_Check(pDX, IDC_CHECK_SUB, m_bSub);
}
BEGIN_MESSAGE_MAP(CConeDLg, CDialog)
ON_BN_CLICKED(IDOK, &CConeDLg::OnBnClickedOk)
ON_BN_CLICKED(IDC_CHECK90, &CConeDLg::OnBnClickedCheck90)
ON_BN_CLICKED(IDC_STATIC_COLOR, OnStaticColor)
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
BOOL CConeDLg::OnInitDialog()
{
CDialog::OnInitDialog();
if (m_pData != NULL)
{
AecEqui::XCone* pCone = (AecEqui::XCone*)m_pData;
m_dr = pCone->dr;
m_dR = pCone->dR;
m_dH = pCone->dH;
m_dXOffset = pCone->dXOffset;
}
UpdateData(FALSE);
return TRUE;
}
void CConeDLg::OnBnClickedOk()
{
UpdateData();
if (m_dr < 1.e-3 && m_dR < 1.e-3 )
{
AfxMessageBox(_T("圆台的顶半径和底半径至少其一大于0,请重新输入数据!"));
return;
}
if (m_dH < 1.e-3)
{
AfxMessageBox(_T("圆台的高度尺寸数据必须大于0,请重新输入数据!"));
return;
}
if (m_pData != NULL)
{
AecEqui::XCone* pCone = (AecEqui::XCone*)m_pData;
pCone->dr = m_dr;
pCone->dR = m_dR;
pCone->dH = m_dH;
pCone->dXOffset = m_dXOffset;
}
SET_CACHE(CConeDLg, %f%f%f%f%d%d, m_dr, m_dR, m_dH, m_dXOffset, m_bIs90Tr, m_clr);
OnOK();
}
void CConeDLg::OnBnClickedCheck90()
{
UpdateData();
if (m_bIs90Tr)
{
m_dXOffset = m_dr - m_dR;
UpdateData(FALSE);
}
}
void CConeDLg::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 CConeDLg::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;
}