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

158 lines
3.1 KiB
C++

#include "StdAfx.h"
#include "DxqmDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CDxqmDlg::CDxqmDlg(CWnd* pParent /*=NULL*/)
: CAdUiDialog(CDxqmDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDxqmDlg)
m_sDistX = _T("20");
m_sDistY = _T("20");
m_sScale = _T("5.0");
m_sDxf = _T("");
m_sLayer = _T("");
//}}AFX_DATA_INIT
m_nQmType=1;
m_pRb = NULL;
}
void CDxqmDlg::DoDataExchange(CDataExchange* pDX)
{
CAdUiDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDxqmDlg)
DDX_Text(pDX, IDC_DISTX, m_sDistX);
DDX_Text(pDX, IDC_DISTY, m_sDistY);
DDX_Text(pDX, IDC_SCALE, m_sScale);
DDX_Text(pDX, IDC_DISTX2,m_sDxf);
DDX_Text(pDX, IDC_SCALE2,m_sLayer);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDxqmDlg, CAdUiDialog)
//{{AFX_MSG_MAP(CDxqmDlg)
ON_BN_CLICKED(IDC_RADWGQM, OnRadwgqm)
ON_BN_CLICKED(IDC_RADSJQM, OnRadsjqm)
ON_BN_CLICKED(IDC_BUTTON1, OnAdd)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CDxqmDlg::OnInitDialog()
{
CAdUiDialog::OnInitDialog();
CenterWindow();
GetDlgData();
SetQmType();
UpdateData(FALSE);
return TRUE;
}
void CDxqmDlg::SetDlgData()
{
CString sFormat;
SetDialogData(_T("横距"),m_sDistX);
SetDialogData(_T("纵距"),m_sDistY);
SetDialogData(_T("比例"),m_sScale);
sFormat.Format(_T("%d"),m_nQmType);
SetDialogData(_T("类型"),sFormat);
}
void CDxqmDlg::GetDlgData()
{
CString sFormat;
if(GetDialogData(_T("横距"),sFormat))
m_sDistX=sFormat;
if(GetDialogData(_T("纵距"),sFormat))
m_sDistY=sFormat;
if(GetDialogData(_T("比例"),sFormat))
m_sScale=sFormat;
if(GetDialogData(_T("类型"),sFormat))
m_nQmType=_ttoi(sFormat);
}
void CDxqmDlg::OnOK()
{
UpdateData(TRUE);
SetDlgData();
if (m_sLayer.IsEmpty() || m_sDxf.IsEmpty())
{
AfxMessageBox(_T("请选择表示地形高程的实体!"));
return;
}
CAdUiDialog::OnOK();
}
void CDxqmDlg::SetQmType()
{
if(m_nQmType==0) //网格曲面
{
((CButton*)GetDlgItem(IDC_RADWGQM))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RADSJQM))->SetCheck(0);
GetDlgItem(IDC_DISTX)->EnableWindow(TRUE);
GetDlgItem(IDC_DISTY)->EnableWindow(TRUE);
}
else
{
((CButton*)GetDlgItem(IDC_RADWGQM))->SetCheck(0);
((CButton*)GetDlgItem(IDC_RADSJQM))->SetCheck(1);
GetDlgItem(IDC_DISTX)->EnableWindow(FALSE);
GetDlgItem(IDC_DISTY)->EnableWindow(FALSE);
}
}
void CDxqmDlg::OnRadwgqm()
{
UpdateData(TRUE);
m_nQmType=0;
SetQmType();
}
void CDxqmDlg::OnRadsjqm()
{
UpdateData(TRUE);
m_nQmType=1;
SetQmType();
}
void CDxqmDlg::GetXYZ(AcGePoint3d& pt) const
{
pt.x = _ttof(m_sDistY);
pt.y = _ttof(m_sDistX);
pt.z = _ttof(m_sScale);
}
struct resbuf* CDxqmDlg::GetFilter() const
{
struct resbuf* pRb = acutBuildList(RTDXF0, (LPCTSTR)m_sDxf,8,(LPCTSTR)m_sLayer,0);
return pRb;
}
void CDxqmDlg::OnAdd()
{
UpdateData();
BeginEditorCommand();
ads_name ent;
ads_point pt;
int nRes = acedEntSel(_T("\n请选择地形高程实体:"),ent,pt);
if (nRes == RTNORM)
{
AcDbObjectId id;
acdbGetObjectId(id,ent);
AcDbEntity* pEnt = NULL;
if ( Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForRead))
{
m_sDxf = pEnt->isA()->dxfName();
m_sLayer = pEnt->layer();
pEnt->close();
}
}
CompleteEditorCommand();
UpdateData(FALSE);
}