561 lines
14 KiB
C++
561 lines
14 KiB
C++
// BuildOutLineDlg.cpp : 实现文件
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "BuildOutLineDlg.h"
|
|
|
|
//int CBuildOutLineDlg::m_iLineTypeSel = 0;
|
|
//int CBuildOutLineDlg::m_iLineWidthSel = 0;
|
|
//CString CBuildOutLineDlg::m_strEditLineWidth_mm = _T("300");
|
|
//CString CBuildOutLineDlg::m_strEditLineWidth_M = _T("0.3");
|
|
double CBuildOutLineDlg::m_dEditLineWidth = 300;//mm单位下
|
|
CString CBuildOutLineDlg::m_strLayer = LAY_BUILD_OUTLINE;
|
|
CString CBuildOutLineDlg::m_strLineType = _T("BYLAYER");
|
|
|
|
int CBuildOutLineDlg::s_nMode = 0;
|
|
bool CBuildOutLineDlg::m_bFirst = true;
|
|
BOOL CBuildOutLineDlg::m_bBalconyOutLine = FALSE;
|
|
BOOL CBuildOutLineDlg::m_bFlagOutAndIn = FALSE;
|
|
|
|
IMPLEMENT_DYNAMIC(CBuildOutLineDlg, CModelessDialog)
|
|
|
|
CBuildOutLineDlg::CBuildOutLineDlg(CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CBuildOutLineDlg::IDD, pParent), m_bPickMode(FALSE), m_strEditLineWidth(_T(""))
|
|
{
|
|
}
|
|
|
|
CBuildOutLineDlg::~CBuildOutLineDlg()
|
|
{
|
|
}
|
|
|
|
void CBuildOutLineDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CModelessDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_CMB_BUILD_LAYER, m_cmbLayers);
|
|
DDX_Control(pDX, IDC_CMB_BUILD_LINE_TYPE, m_cmbLineType);
|
|
DDX_Control(pDX, IDC_CMB_BUILD_LINE_WIDTH, m_cmbLineWidth);
|
|
DDX_Check(pDX, IDC_CHECK_BALCONY_OUTLINE, m_bBalconyOutLine);
|
|
DDX_Check(pDX, IDC_CHECK_OUTANDIN, m_bFlagOutAndIn);
|
|
DDX_CBString(pDX, IDC_CMB_BUILD_LINE_WIDTH, m_strEditLineWidth);
|
|
if (!pDX->m_bSaveAndValidate)
|
|
{
|
|
m_toolbar.CheckButton(IDC_BTN_SEARCHTGOBJ, s_nMode==0);
|
|
m_toolbar.CheckButton(IDC_BTN_ANYDRAW, s_nMode==1);
|
|
}
|
|
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CBuildOutLineDlg, CModelessDialog)
|
|
ON_CBN_SELCHANGE(IDC_CMB_BUILD_LAYER, &CBuildOutLineDlg::OnCbnSelchangeCmbBuildLayer)
|
|
ON_CBN_SELCHANGE(IDC_CMB_BUILD_LINE_TYPE, &CBuildOutLineDlg::OnCbnSelchangeCmbBuildLineType)
|
|
ON_CBN_SELCHANGE(IDC_CMB_BUILD_LINE_WIDTH, &CBuildOutLineDlg::OnCbnSelchangeCmbBuildLineWidth)
|
|
ON_CBN_EDITCHANGE(IDC_CMB_BUILD_LINE_WIDTH, &CBuildOutLineDlg::OnCbnEditchangeCmbBuildLineWidth)
|
|
ON_BN_CLICKED(IDC_BTN_SEARCHTGOBJ, &CBuildOutLineDlg::OnBnClickedBtnSearchTGObj)
|
|
ON_BN_CLICKED(IDC_BTN_ANYDRAW, &CBuildOutLineDlg::OnBnClickedBtnAnyDraw)
|
|
ON_BN_CLICKED(IDC_BTN_PICKDATA, &CBuildOutLineDlg::OnBnClickedBtnPickData)
|
|
ON_BN_CLICKED(IDC_CHECK_BALCONY_OUTLINE, &CBuildOutLineDlg::OnBnClickedCheckBalconyOutline)
|
|
ON_BN_CLICKED(IDC_CHECK_OUTANDIN, &CBuildOutLineDlg::OnBnClickedCheckOutandin)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
|
|
ON_WM_CLOSE()
|
|
ON_CBN_KILLFOCUS(IDC_CMB_BUILD_LINE_WIDTH, &CBuildOutLineDlg::OnCbnKillfocusCmbBuildLineWidth)
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CBuildOutLineDlg::OnInitDialog()
|
|
{
|
|
CModelessDialog::OnInitDialog();
|
|
CAcModuleResourceOverride vTmp;
|
|
m_toolbar.Create( WS_VISIBLE | WS_CHILD |CCS_BOTTOM | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT
|
|
| CCS_ADJUSTABLE ,CRect(0,0,0,0), this, IDB_BTM_BUILDOUTLINE_BTNS);
|
|
m_toolbar.AddBitmap(4, IDB_BTM_BUILDOUTLINE_BTNS);
|
|
m_toolbar.SetBitmapSize(CSize(19,19));
|
|
TBBUTTON *pIndex,
|
|
*pRTF_Button = new TBBUTTON[4];
|
|
pIndex = pRTF_Button;
|
|
memset(&pRTF_Button[0] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[0].iBitmap = 0;
|
|
pRTF_Button[0].idCommand = IDC_BTN_SEARCHTGOBJ;
|
|
pRTF_Button[0].fsStyle = TBSTYLE_CHECKGROUP;
|
|
pRTF_Button[0].fsState = TBSTATE_ENABLED;
|
|
|
|
memset(&pRTF_Button[1] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[1].iBitmap = 1;
|
|
pRTF_Button[1].idCommand = IDC_BTN_ANYDRAW;
|
|
pRTF_Button[1].fsStyle = TBSTYLE_CHECKGROUP;
|
|
pRTF_Button[1].fsState = TBSTATE_ENABLED;
|
|
|
|
|
|
memset(&pRTF_Button[2] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[2].iBitmap = 0;
|
|
pRTF_Button[2].idCommand = 0;
|
|
pRTF_Button[2].fsStyle = TBSTYLE_SEP |TBSTYLE_CHECKGROUP;
|
|
|
|
|
|
memset(&pRTF_Button[3] ,NULL, sizeof(TBBUTTON));
|
|
pRTF_Button[3].iBitmap = 2;
|
|
pRTF_Button[3].idCommand = IDC_BTN_PICKDATA;
|
|
pRTF_Button[3].fsStyle = TBSTYLE_CHECKGROUP;
|
|
pRTF_Button[3].fsState = TBSTATE_ENABLED;
|
|
|
|
CSize size(19, 19);
|
|
m_toolbar.SetButtonSize(size);
|
|
m_toolbar.AddButtons(4, pRTF_Button);
|
|
//m_toolbar.SetStyle(TBSTYLE_FLAT);
|
|
delete[] pRTF_Button;
|
|
//m_toolbar.AutoSize();
|
|
|
|
BOOL bIsMetre = DocGetMeterUnitDraw();
|
|
if (bIsMetre)
|
|
this->SetWindowText(_T("建筑轮廓(单位:M)"));
|
|
else
|
|
this->SetWindowText(_T("建筑轮廓(单位:mm)"));
|
|
|
|
if (s_nMode == 0)
|
|
{
|
|
GetDlgItem(IDC_CHECK_BALCONY_OUTLINE)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_CHECK_OUTANDIN)->EnableWindow(TRUE);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_CHECK_BALCONY_OUTLINE)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_OUTANDIN)->EnableWindow(FALSE);
|
|
}
|
|
|
|
InitCmbLayers();
|
|
InitLineType();
|
|
InitLineWidth();
|
|
m_bFirst = false;
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
// 工具栏提示
|
|
BOOL CBuildOutLineDlg::OnToolTipText( UINT, NMHDR * pNMHDR, LRESULT * pResult )
|
|
{
|
|
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);
|
|
if (GetRoutingFrame() != NULL)
|
|
return FALSE;
|
|
|
|
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
|
|
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
|
|
CString strTipText;
|
|
UINT nID = (UINT)pNMHDR->idFrom;
|
|
|
|
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
|
|
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
|
|
{
|
|
return FALSE;
|
|
}
|
|
if (nID != 0)
|
|
{
|
|
{
|
|
CAcModuleResourceOverride vTmp;
|
|
strTipText.LoadString(nID);
|
|
}
|
|
|
|
#ifndef _UNICODE
|
|
if (pNMHDR->code == TTN_NEEDTEXTA)
|
|
{
|
|
lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText));
|
|
}
|
|
else
|
|
{
|
|
_mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
|
|
}
|
|
#else
|
|
if (pNMHDR->code == TTN_NEEDTEXTA)
|
|
{
|
|
_wcstombsz(pTTTA->szText, strTipText,sizeof(pTTTA->szText));
|
|
}
|
|
else
|
|
{
|
|
lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
|
|
}
|
|
#endif
|
|
|
|
*pResult = 0;
|
|
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,SWP_NOACTIVATE|
|
|
SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CBuildOutLineDlg::InitCmbLayers()
|
|
{
|
|
InitLayer(LAY_BUILD_OUTLINE);
|
|
AcDbLayerTable *pLayerTable = NULL;//表
|
|
Acad::ErrorStatus err = acdbCurDwg()->getSymbolTable(pLayerTable, AcDb::kForRead);
|
|
if (err != Acad::eOk)
|
|
{
|
|
return FALSE;
|
|
}
|
|
AcDbLayerTableIterator *pItor = NULL;
|
|
pLayerTable->newIterator(pItor);//迭代器
|
|
pLayerTable->close();
|
|
if (!pItor)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
Acad::ErrorStatus bOk;
|
|
AcDbLayerTableRecord *pLayerRecord = NULL;//图层记录
|
|
CString sName(_T(""));
|
|
TCHAR *pStr = NULL;
|
|
int iNum = 0;
|
|
for (pItor->start();!pItor->done(); pItor->step())
|
|
{
|
|
bOk = pItor->getRecord(pLayerRecord, AcDb::kForRead);
|
|
if (bOk == Acad::eOk)
|
|
{
|
|
pStr = NULL;
|
|
pLayerRecord->getName(pStr);
|
|
sName = pStr;
|
|
acutDelString(pStr);
|
|
if (sName.Find(_T('|')) >= 0)
|
|
{
|
|
pLayerRecord->close();
|
|
continue;
|
|
}
|
|
pLayerRecord->close();
|
|
m_cmbLayers.AddString(sName);
|
|
++iNum;
|
|
}
|
|
}
|
|
delete pItor;
|
|
|
|
int iLayerSel = m_cmbLayers.FindStringExact(0, m_strLayer);
|
|
if (iLayerSel < 0)
|
|
{
|
|
//m_strLayer = _T("SITE-BOTL");
|
|
m_strLayer = LAY_BUILD_OUTLINE;
|
|
|
|
iLayerSel = m_cmbLayers.FindStringExact(0, m_strLayer);
|
|
}
|
|
if (iLayerSel >= 0 && iLayerSel < m_cmbLayers.GetCount())
|
|
m_cmbLayers.SetCurSel(iLayerSel);
|
|
else
|
|
m_cmbLayers.SetCurSel(0);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CBuildOutLineDlg::InitLineType()
|
|
{
|
|
m_cmbLineType.ResetContent();
|
|
|
|
AcDbLinetypeTable *pTbl = NULL;
|
|
AcDbLinetypeTableRecord *pRec = NULL;
|
|
AcDbLinetypeTableIterator *pIter = NULL;
|
|
|
|
acdbCurDwg()->getSymbolTable(pTbl, AcDb::kForRead);
|
|
if (!pTbl) return FALSE;
|
|
|
|
pTbl->newIterator(pIter);
|
|
pTbl->close();
|
|
if (!pIter) return FALSE;
|
|
|
|
TCHAR *pStr = NULL;
|
|
AcDbObjectId id = AcDbObjectId::kNull;
|
|
CString str(_T(""));
|
|
int iNum = 0;
|
|
for (pIter->start(); !pIter->done(); pIter->step())
|
|
{
|
|
pIter->getRecordId(id);
|
|
pIter->getRecord(pRec, AcDb::kForRead);
|
|
if (!pRec) continue;
|
|
pRec->getName(pStr);
|
|
str = pStr;
|
|
if (!str.CompareNoCase(_T("BYLAYER")) || !str.CompareNoCase(_T("BYBLOCK")))
|
|
str.MakeUpper();
|
|
m_cmbLineType.AddString(str);
|
|
++iNum;
|
|
pRec->close();
|
|
acutDelString(pStr);
|
|
}
|
|
delete pIter;
|
|
|
|
int iLineTypeSel = m_cmbLineType.FindStringExact(0, m_strLineType);
|
|
if (iLineTypeSel >=0 )
|
|
{
|
|
if (iLineTypeSel >= 0 && iLineTypeSel < m_cmbLineType.GetCount())
|
|
m_cmbLineType.SetCurSel(iLineTypeSel);
|
|
}
|
|
else
|
|
{
|
|
m_strLineType = _T("BYLAYER");
|
|
iLineTypeSel = m_cmbLineType.FindStringExact(0, m_strLineType);
|
|
if (iLineTypeSel >=0 )
|
|
{
|
|
if (iLineTypeSel >= 0 && iLineTypeSel < m_cmbLineType.GetCount())
|
|
m_cmbLineType.SetCurSel(iLineTypeSel);
|
|
}
|
|
else
|
|
m_cmbLineType.SetCurSel(0);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
//初始化线宽
|
|
BOOL CBuildOutLineDlg::InitLineWidth()
|
|
{
|
|
m_cmbLineWidth.ResetContent();
|
|
double dMultiple = 50;
|
|
double dInitNum = 100;
|
|
if (DocGetMeterUnitDraw())
|
|
{
|
|
dMultiple = 0.05;
|
|
dInitNum = 0.1;
|
|
}
|
|
CString strTemp(_T(""));
|
|
for (int i = 0; i < 11; ++i)
|
|
{
|
|
if (DocGetMeterUnitDraw())
|
|
strTemp.Format(_T("%g"), dInitNum + i * dMultiple);
|
|
else
|
|
strTemp.Format(_T("%g"), dInitNum + i * dMultiple);
|
|
m_cmbLineWidth.AddString(strTemp);
|
|
}
|
|
|
|
//记录上次值
|
|
double dCurWidth = m_dEditLineWidth;
|
|
if (DocGetMeterUnitDraw())
|
|
dCurWidth = m_dEditLineWidth / 1000.0;
|
|
m_strEditLineWidth.Format(_T("%g"), dCurWidth);
|
|
int iLineWidthSel = 0;
|
|
if (!m_strEditLineWidth.IsEmpty())//初始化
|
|
{
|
|
if (m_strEditLineWidth == _T("0"))
|
|
{
|
|
int iPos = m_cmbLineWidth.AddString(m_strEditLineWidth);
|
|
iLineWidthSel = iPos;
|
|
}
|
|
else
|
|
{
|
|
int iDefaultSel = m_cmbLineWidth.FindStringExact(0, m_strEditLineWidth);//modify tyj 20160929:变量用错,m_cmbLayers替换为m_cmbLineWidth(Bug :19672)
|
|
if (iDefaultSel< 0 )
|
|
{
|
|
int iPos = m_cmbLineWidth.AddString(m_strEditLineWidth);
|
|
iLineWidthSel = iPos;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (iLineWidthSel >= 0 && iLineWidthSel < m_cmbLineWidth.GetCount())
|
|
m_cmbLineWidth.SetCurSel(iLineWidthSel);
|
|
else
|
|
m_cmbLineWidth.SetCurSel(0);
|
|
return TRUE;
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnClose()
|
|
{
|
|
m_bUseEsc = true;
|
|
if (m_bModeless)
|
|
{
|
|
acedPostCommand(_T("\33\33"));
|
|
}
|
|
else
|
|
{
|
|
CModelessDialog::OnClose();
|
|
}
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnDestroy()
|
|
{
|
|
CModelessDialog::OnDestroy();
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnCbnSelchangeCmbBuildLayer()
|
|
{
|
|
int iLayerSel = m_cmbLayers.GetCurSel();
|
|
m_cmbLayers.GetLBText(iLayerSel, m_strLayer);
|
|
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnCbnSelchangeCmbBuildLineType()
|
|
{
|
|
int iLineTypeSel = m_cmbLineType.GetCurSel();
|
|
m_cmbLineType.GetLBText(iLineTypeSel, m_strLineType);
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnCbnSelchangeCmbBuildLineWidth()
|
|
{
|
|
int iLineWidthSel = m_cmbLineWidth.GetCurSel();
|
|
m_cmbLineWidth.GetLBText(iLineWidthSel, m_strEditLineWidth);
|
|
if (DocGetMeterUnitDraw())
|
|
m_dEditLineWidth = _wtof(m_strEditLineWidth) * 1000;
|
|
else
|
|
m_dEditLineWidth = _wtof(m_strEditLineWidth);
|
|
}
|
|
|
|
//判断输入的值是否符合条件
|
|
void CBuildOutLineDlg::OnCbnEditchangeCmbBuildLineWidth()
|
|
{
|
|
CString strContent(_T(""));
|
|
GetDlgItem(IDC_CMB_BUILD_LINE_WIDTH)->GetWindowText(strContent);
|
|
if (strContent.GetLength() > 0)
|
|
{
|
|
for (int i = 0; i < strContent.GetLength(); ++i)
|
|
{
|
|
if (strContent.GetAt(i) == '.')
|
|
continue;
|
|
if ((strContent.GetAt(i) < '0' || strContent.GetAt(i) > '9'))
|
|
{
|
|
AfxMessageBox(_T("请输入≥0的数值!"));
|
|
UpdateData(FALSE);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
UpdateData(TRUE);
|
|
}
|
|
|
|
//线宽
|
|
void CBuildOutLineDlg::OnCbnKillfocusCmbBuildLineWidth()
|
|
{
|
|
int nPos = m_cmbLineWidth.FindStringExact(0, m_strEditLineWidth);
|
|
if (!m_strEditLineWidth.IsEmpty() && nPos < 0)
|
|
{
|
|
int iDefaultSel = m_cmbLineWidth.AddString(m_strEditLineWidth);
|
|
if (iDefaultSel >= 0)
|
|
{
|
|
m_cmbLineWidth.SetCurSel(iDefaultSel);
|
|
}
|
|
}
|
|
if (DocGetMeterUnitDraw())
|
|
m_dEditLineWidth = _wtof(m_strEditLineWidth) * 1000;
|
|
else
|
|
m_dEditLineWidth = _wtof(m_strEditLineWidth);
|
|
UpdateData(FALSE);
|
|
GetDlgItem(IDC_CMB_BUILD_LAYER)->SetFocus();
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnBnClickedCheckBalconyOutline()
|
|
{
|
|
UpdateData(TRUE);
|
|
}
|
|
|
|
void CBuildOutLineDlg::OnBnClickedCheckOutandin()
|
|
{
|
|
UpdateData(TRUE);
|
|
}
|
|
|
|
//搜索上华的墙、柱等其他实体自动生成
|
|
void CBuildOutLineDlg::OnBnClickedBtnSearchTGObj()
|
|
{
|
|
m_bPickMode = FALSE;
|
|
s_nMode = 0;
|
|
GetDlgItem(IDC_CHECK_BALCONY_OUTLINE)->EnableWindow(TRUE);
|
|
GetDlgItem(IDC_CHECK_OUTANDIN)->EnableWindow(TRUE);
|
|
m_bUseEsc = false;
|
|
acedPostCommand(_T("\33"));
|
|
}
|
|
|
|
//任意绘制
|
|
void CBuildOutLineDlg::OnBnClickedBtnAnyDraw()
|
|
{
|
|
m_bPickMode = FALSE;
|
|
s_nMode = 1;
|
|
GetDlgItem(IDC_CHECK_BALCONY_OUTLINE)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_OUTANDIN)->EnableWindow(FALSE);
|
|
m_bUseEsc = false;
|
|
acedPostCommand(_T("\33"));
|
|
}
|
|
|
|
//拾取参数
|
|
void CBuildOutLineDlg::OnBnClickedBtnPickData()
|
|
{
|
|
m_bPickMode = TRUE;
|
|
GetDlgItem(IDC_CHECK_BALCONY_OUTLINE)->EnableWindow(FALSE);
|
|
GetDlgItem(IDC_CHECK_OUTANDIN)->EnableWindow(FALSE);
|
|
m_bUseEsc = false;
|
|
acedPostCommand(_T("\33"));
|
|
}
|
|
|
|
|
|
CString CBuildOutLineDlg::GetLayerName()
|
|
{
|
|
return m_strLayer;
|
|
}
|
|
CString CBuildOutLineDlg::GetLineType()
|
|
{
|
|
return m_strLineType;
|
|
}
|
|
double CBuildOutLineDlg::GetLineWidth()
|
|
{
|
|
if (DocGetMeterUnitDraw())
|
|
return m_dEditLineWidth / 1000.0;
|
|
else
|
|
return m_dEditLineWidth;
|
|
}
|
|
//是否绘制阳台线
|
|
int CBuildOutLineDlg::IsDrawBalcony()
|
|
{
|
|
return m_bBalconyOutLine;
|
|
}
|
|
//是否标注三角
|
|
int CBuildOutLineDlg::IsFlagTri()
|
|
{
|
|
return m_bFlagOutAndIn;
|
|
}
|
|
int CBuildOutLineDlg::GetDrawType()
|
|
{
|
|
if (m_bPickMode)
|
|
return kPickData;
|
|
if (s_nMode == 0)
|
|
return kSearchAuto;
|
|
if (s_nMode == 1)
|
|
return kAnyDraw;
|
|
return kSearchAuto;
|
|
}
|
|
|
|
void CBuildOutLineDlg::SetLayerName(CString sLayer)
|
|
{
|
|
int iDefaultSel = m_cmbLayers.FindStringExact(0, sLayer);
|
|
if (iDefaultSel < 0 )
|
|
{
|
|
iDefaultSel = m_cmbLayers.AddString(sLayer);
|
|
}
|
|
m_strLayer = sLayer;
|
|
m_cmbLayers.SetCurSel(iDefaultSel);
|
|
UpdateData(FALSE);
|
|
}
|
|
void CBuildOutLineDlg::SetLineType(CString sLineType)
|
|
{
|
|
int iDefaultSel = m_cmbLineType.FindStringExact(0, sLineType);
|
|
if (iDefaultSel < 0 )
|
|
{
|
|
iDefaultSel = m_cmbLineType.AddString(sLineType);
|
|
}
|
|
m_strLineType = sLineType;
|
|
m_cmbLineType.SetCurSel(iDefaultSel);
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
//设置线宽
|
|
void CBuildOutLineDlg::SetLineWidth(double dLineWidth)
|
|
{
|
|
CString strLineWidth(_T(""));
|
|
strLineWidth.Format(_T("%g"), dLineWidth);
|
|
int iDefaultSel = m_cmbLineWidth.FindStringExact(0, strLineWidth);
|
|
int iLineWidthSel = 0;
|
|
if (iDefaultSel >= 0 )
|
|
{
|
|
iLineWidthSel = iDefaultSel;
|
|
}
|
|
else
|
|
{
|
|
iDefaultSel = m_cmbLineWidth.AddString(strLineWidth);
|
|
if (iDefaultSel >=0 )
|
|
iLineWidthSel = iDefaultSel;
|
|
}
|
|
m_cmbLineWidth.SetCurSel(iLineWidthSel);
|
|
CString sLineWidthSel(_T(""));
|
|
m_cmbLineWidth.GetLBText(iLineWidthSel, sLineWidthSel);
|
|
if (DocGetMeterUnitDraw())
|
|
m_dEditLineWidth = dLineWidth * 1000;
|
|
else
|
|
m_dEditLineWidth = dLineWidth;
|
|
m_strEditLineWidth = sLineWidthSel;
|
|
UpdateData(FALSE);
|
|
}
|