997 lines
26 KiB
C++
997 lines
26 KiB
C++
#include "StdAfx.h"
|
|
#include "StdArx.h"
|
|
#include "PipelineTools.h"
|
|
#include "KTInitDlg.h"
|
|
#include "KTDimScriptDlg.h"
|
|
#include "KTElSetupDlg.h"
|
|
#include "earthwormdef.h"
|
|
#include "KTCadUtility.h"
|
|
#include "AecPipeLine.h"
|
|
#include "verifynumberstring.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
KTInitDlg::KTInitDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(KTInitDlg::IDD, pParent)
|
|
, m_nBrkStyle(0)
|
|
, m_dMPipeW(.0)
|
|
, m_dSPipeW(.0)
|
|
, m_sInsRDN(_T(""))
|
|
, m_dValveScale(.0)
|
|
, m_dEquScale(.0)
|
|
, m_dLinearScale(.0)
|
|
, m_dNodeScale(.0)
|
|
, m_dConSign(.0)
|
|
, m_dBigArrow(.0)
|
|
, m_dMidArrow(.0)
|
|
, m_dSmallArrow(.0)
|
|
, m_bEquDim(0)
|
|
, m_bValveDim(0)
|
|
, m_sScale(_T(""))
|
|
, m_dPlotWidth(.0)
|
|
, m_dWeldDotDia(.0)
|
|
, m_sPipeMinDia(_T(""))
|
|
, m_sPipeMaxDia(_T(""))
|
|
, m_sPerElbowDia(_T(""))
|
|
, m_dBreakSpace(.0)
|
|
, m_dTextWFact(.0)
|
|
, m_dTextHeight(.0)
|
|
, m_sScriptUp(_T(""))
|
|
, m_sScriptDown(_T(""))
|
|
, m_dDPlotWidth(.0)
|
|
, m_dEqpTxtHeight(.0)
|
|
, m_dEqpTxtWFact(.0)
|
|
, m_dStrTxtHeight(.0)
|
|
, m_dStrTxtWFact(.0)
|
|
, m_nTrade(0)
|
|
, m_sEl(_T(""))
|
|
, m_sTopEl(_T(""))
|
|
, m_sCenEl(_T(""))
|
|
, m_sBomEl(_T(""))
|
|
, m_pPipeInitData(NULL)
|
|
, m_bDN(0)
|
|
, m_dMaxDiaDrawScale(1.2)
|
|
, m_bMaxDiaScale(FALSE)
|
|
{
|
|
UIHistory::readCache(FILE_NAME_INI
|
|
, _T("KTInitDlg")
|
|
, _T("%s%f%f%s%s%s%f%f%f%s%s%f%f%f%f%f%d%s%f%f%f%f%f%f%f%f%f%f%d%d%d%f%d")
|
|
, &m_sScale // %s
|
|
, &m_dPlotWidth // %f
|
|
, &m_dWeldDotDia // %f
|
|
, &m_sPipeMinDia // %s
|
|
, &m_sPipeMaxDia // %s
|
|
, &m_sPerElbowDia // %s
|
|
, &m_dBreakSpace // %f
|
|
, &m_dTextWFact // %f
|
|
, &m_dTextHeight // %f
|
|
, &m_sScriptUp // %s
|
|
, &m_sScriptDown // %s
|
|
, &m_dDPlotWidth // %f
|
|
, &m_dEqpTxtHeight // %f
|
|
, &m_dEqpTxtWFact // %f
|
|
, &m_dStrTxtHeight // %f
|
|
, &m_dStrTxtWFact // %f
|
|
, &m_nTrade // %d
|
|
, &m_sInsRDN // %s
|
|
, &m_dMPipeW // %f
|
|
, &m_dSPipeW // %f
|
|
, &m_dValveScale // %f
|
|
, &m_dEquScale // %f
|
|
, &m_dNodeScale // %f
|
|
, &m_dConSign // %f
|
|
, &m_dLinearScale // %f
|
|
, &m_dBigArrow // %f
|
|
, &m_dMidArrow // %f
|
|
, &m_dSmallArrow // %f
|
|
, &m_bEquDim // %d
|
|
, &m_bValveDim // %d
|
|
, &m_nBrkStyle // %d
|
|
, &m_dMaxDiaDrawScale//%f
|
|
, &m_bMaxDiaScale //%d
|
|
);
|
|
}
|
|
|
|
void KTInitDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(KTInitDlg)
|
|
DDX_Control(pDX, IDC_COMBOPROJECTS, m_wndProjectCombo);
|
|
DDX_Control(pDX, IDC_STATIC_BMP_TOPEL, m_wndBmpTopEl);
|
|
DDX_Control(pDX, IDC_STATIC_BMP_EL, m_wndBmpEl);
|
|
DDX_Control(pDX, IDC_STATIC_BMP_CENEL, m_wndBmpCenEl);
|
|
DDX_Control(pDX, IDC_STATIC_BMP_BOMEL, m_wndBmpBomEl);
|
|
DDX_Control(pDX, IDC_STATIC_EL, m_wndEl);
|
|
DDX_Control(pDX, IDC_STATIC_EL_BOM, m_wndElBom);
|
|
DDX_Control(pDX, IDC_STATIC_EL_CEN, m_wndElCen);
|
|
DDX_Control(pDX, IDC_STATIC_EL_TOP, m_wndElTop);
|
|
DDX_Control(pDX, IDC_STATIC_EL_TYPE, m_wndElType);
|
|
|
|
DDX_CBString(pDX, IDC_COMBOSCALE, m_sScale);
|
|
DDX_Text(pDX, IDC_EDITPLOTWIDTH, m_dPlotWidth);
|
|
DDX_Text(pDX, IDC_EDITWELDDOTDIA, m_dWeldDotDia);
|
|
DDX_CBString(pDX, IDC_COMBOPIPEMINDIA, m_sPipeMinDia);
|
|
DDX_CBString(pDX, IDC_COMBOPIPEMAXDIA, m_sPipeMaxDia);
|
|
DDX_CBString(pDX, IDC_COMBOELBOWDIA, m_sPerElbowDia);
|
|
DDX_Text(pDX, IDC_EDITBREAKSPACE, m_dBreakSpace);
|
|
DDX_Text(pDX, IDC_EDITTEXTWFACT, m_dTextWFact);
|
|
DDX_Text(pDX, IDC_EDITTEXTHEIGHT, m_dTextHeight);
|
|
DDX_Text(pDX, IDC_EDITDIMUP, m_sScriptUp);
|
|
DDX_Text(pDX, IDC_EDITDIMBOTTOM, m_sScriptDown);
|
|
DDX_Text(pDX, IDC_EDITDLINEWIDTH, m_dDPlotWidth);
|
|
DDX_Text(pDX, IDC_EDITEQPTXTHEIGHT, m_dEqpTxtHeight);
|
|
DDX_Text(pDX, IDC_EDITEQPTXTWFACT, m_dEqpTxtWFact);
|
|
DDX_Text(pDX, IDC_EDITSTRTXTHEIGHT, m_dStrTxtHeight);
|
|
DDX_Text(pDX, IDC_EDITSTRTXTWFACT, m_dStrTxtWFact);
|
|
DDX_CBIndex(pDX, IDC_COMBOTRADE, m_nTrade);
|
|
|
|
// pid
|
|
DDX_CBString(pDX, IDC_COMBOINSRDN, m_sInsRDN);
|
|
DDX_Text(pDX, IDC_MPIPE1W, m_dMPipeW);
|
|
DDX_Text(pDX, IDC_SPIPE1W, m_dSPipeW);
|
|
DDX_Text(pDX, IDC_VALVESCALE, m_dValveScale);
|
|
DDX_Text(pDX, IDC_EQUSCALE, m_dEquScale);
|
|
DDX_Text(pDX, IDC_NODESCALE, m_dNodeScale);
|
|
DDX_Text(pDX, IDC_CONSIGN, m_dConSign);
|
|
DDX_Text(pDX, IDC_LINEARSCALE, m_dLinearScale);
|
|
DDX_Text(pDX, IDC_EDITBIGARROW, m_dBigArrow);
|
|
DDX_Text(pDX, IDC_EDITMIDARROW, m_dMidArrow);
|
|
DDX_Text(pDX, IDC_EDITSMALLARROW, m_dSmallArrow);
|
|
DDX_Check(pDX, IDC_CHECKEQUDIM, m_bEquDim);
|
|
DDX_Check(pDX, IDC_CHECKVALVEDIM, m_bValveDim);
|
|
DDX_Radio(pDX, IDC_RADIOBRK0, m_nBrkStyle);
|
|
DDX_Text(pDX, IDC_EDITPLOTWIDTH2, m_dMaxDiaDrawScale);
|
|
|
|
DDX_Check(pDX, IDC_CHECKDN, m_bDN);
|
|
DDX_Check(pDX, IDC_CHECKD, m_bD);
|
|
DDX_Check(pDX, IDC_CHECKO, m_bO);
|
|
DDX_Check(pDX, IDC_CHECK1, m_bMaxDiaScale);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(KTInitDlg, CDialog)
|
|
//{{AFX_MSG_MAP(KTInitDlg)
|
|
ON_BN_CLICKED(IDC_BUTTONUPSET, OnButtonupset)
|
|
ON_BN_CLICKED(IDC_BUTTONDOWNSET, OnButtondownset)
|
|
ON_BN_CLICKED(IDC_BTELSETUP, OnBtelsetup)
|
|
ON_BN_CLICKED(IDC_CHECKO, OnBnClickedChecko)
|
|
ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedUpdatePipe)
|
|
ON_CBN_SELCHANGE(IDC_COMBOTRADE, OnCbnSelchangeComboTrade)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
void KTInitDlg::SetPipeInitData(AecDbObjXDataMap* pXData)
|
|
{
|
|
m_pPipeInitData = pXData;
|
|
}
|
|
|
|
BOOL KTInitDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_bmpEl.LoadBitmap(IDB_BITMAPEL);
|
|
m_bmpTopEl.LoadBitmap(IDB_BITMAPTOPEL);
|
|
m_bmpCenEl.LoadBitmap(IDB_BITMAPCENEL);
|
|
m_bmpBomEl.LoadBitmap(IDB_BITMAPBOTEL);
|
|
|
|
InitFromMap();
|
|
|
|
|
|
if (m_pPipeInitData != NULL)
|
|
{
|
|
CString sScriptUp, sScriptDown;
|
|
|
|
PipeDetail2Script(m_sScriptUp, sScriptUp);
|
|
m_pPipeInitData->SetAt(DOC_SCRIPTT, sScriptUp);//上标脚本
|
|
|
|
PipeDetail2Script(m_sScriptDown, sScriptDown);
|
|
m_pPipeInitData->SetAt(DOC_SCRIPTB, sScriptDown);//下标脚本
|
|
}
|
|
|
|
InitProject();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void KTInitDlg::OnOK()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
UIHistory::writeCache(FILE_NAME_INI
|
|
, _T("KTInitDlg")
|
|
, _T("%s%f%f%s%s%s%f%f%f%s%s%f%f%f%f%f%d%s%f%f%f%f%f%f%f%f%f%f%d%d%d%f%d")
|
|
, m_sScale // %s
|
|
, m_dPlotWidth // %f
|
|
, m_dWeldDotDia // %f
|
|
, m_sPipeMinDia // %s
|
|
, m_sPipeMaxDia // %s
|
|
, m_sPerElbowDia // %s
|
|
, m_dBreakSpace // %f
|
|
, m_dTextWFact // %f
|
|
, m_dTextHeight // %f
|
|
, m_sScriptUp // %s
|
|
, m_sScriptDown // %s
|
|
, m_dDPlotWidth // %f
|
|
, m_dEqpTxtHeight // %f
|
|
, m_dEqpTxtWFact // %f
|
|
, m_dStrTxtHeight // %f
|
|
, m_dStrTxtWFact // %f
|
|
, m_nTrade // %d
|
|
, m_sInsRDN // %s
|
|
, m_dMPipeW // %f
|
|
, m_dSPipeW // %f
|
|
, m_dValveScale // %f
|
|
, m_dEquScale // %f
|
|
, m_dNodeScale // %f
|
|
, m_dConSign // %f
|
|
, m_dLinearScale // %f
|
|
, m_dBigArrow // %f
|
|
, m_dMidArrow // %f
|
|
, m_dSmallArrow // %f
|
|
, m_bEquDim // %d
|
|
, m_bValveDim // %d
|
|
, m_nBrkStyle // %d
|
|
, m_dMaxDiaDrawScale//%f
|
|
, m_bMaxDiaScale //%d
|
|
);
|
|
|
|
if (!DownLoad2Map())
|
|
{
|
|
return;
|
|
}
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void KTInitDlg::OnCbnSelchangeComboTrade()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_nTrade == 4)
|
|
{
|
|
int nSel = m_wndProjectCombo.FindString(0, _T("市政"));
|
|
if (nSel != -1)
|
|
{
|
|
m_wndProjectCombo.SetCurSel(nSel);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int nSel = m_wndProjectCombo.FindString(0, _T("工业"));
|
|
if (nSel != -1)
|
|
{
|
|
m_wndProjectCombo.SetCurSel(nSel);
|
|
}
|
|
}
|
|
}
|
|
|
|
void KTInitDlg::OnButtonupset()
|
|
{
|
|
CString sText,sText2;
|
|
m_pPipeInitData->GetAt(DOC_SCRIPTT,sText); //上标脚本
|
|
PipeScript2Detail(sText,sText2);
|
|
|
|
KTDimScriptDlg scrDlg;
|
|
scrDlg.SetPipeDimScript(sText);
|
|
if (IDOK == scrDlg.DoModal())
|
|
{
|
|
//{..}{..}{..}
|
|
scrDlg.GetPipeDimScript(m_sScriptUp);
|
|
|
|
sText2 = _T("");
|
|
PipeDetail2Script(m_sScriptUp,sText2);
|
|
m_pPipeInitData->SetAt(DOC_SCRIPTT,sText2);
|
|
|
|
m_sScriptUp.Replace(_T("{"),_T(""));
|
|
m_sScriptUp.Replace(_T("}"),_T(""));
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void KTInitDlg::OnBnClickedUpdatePipe()
|
|
{
|
|
UpdateData();
|
|
EndDialog(IDOK);
|
|
|
|
//选择管线和管件
|
|
struct resbuf* pRb = acutBuildList(RTDXF0,_T("AEC_EWPIPE,AEC_DBEWFIT"),0);
|
|
int nRes = 0;
|
|
ads_name ss,ent;
|
|
if ( RTNORM != ( nRes = CKTCadUtility::SelectEntities(_T("\n请选择更改的管线管件实体:"), ss,pRb ) ) )
|
|
{
|
|
acutRelRb(pRb);
|
|
return;
|
|
}
|
|
acutRelRb(pRb);
|
|
|
|
Adesk::Int32 nLen = 0;
|
|
acedSSLength(ss,&nLen);
|
|
|
|
TDbPipeLine pipeLn(NULL);
|
|
|
|
AcDbObjectId id;
|
|
AcDbEntity* pEnt = NULL;
|
|
for (int i = 0;i < nLen;i++)
|
|
{
|
|
acedSSName(ss,i,ent);
|
|
|
|
acdbGetObjectId(id,ent);
|
|
if ( Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForWrite))
|
|
{
|
|
AecDbEwPipe* pPipe = AecDbEwPipe::cast(pEnt);
|
|
if (pPipe != NULL)
|
|
{
|
|
pipeLn.FillInInitXDataMap(pPipe->GetSpecialtyData());
|
|
pPipe->ReCreateDraw2d();
|
|
pPipe->ReCreateDraw3d();
|
|
}
|
|
|
|
AecDbEwFitting* pFit = AecDbEwFitting::cast(pEnt);
|
|
if (pFit != NULL)
|
|
{
|
|
pipeLn.FillInInitXDataMap(pFit->GetSpecialtyData());
|
|
pFit->ReCreateDraw2d();
|
|
pFit->ReCreateDraw3d();
|
|
}
|
|
|
|
pEnt->close();
|
|
}
|
|
}
|
|
acedSSFree(ss);
|
|
acedPostCommand(_T("regen "));
|
|
}
|
|
|
|
void KTInitDlg::OnButtondownset()
|
|
{
|
|
CString sText,sText2;
|
|
m_pPipeInitData->GetAt(DOC_SCRIPTB,sText); //下标脚本
|
|
PipeScript2Detail(sText,sText2);
|
|
|
|
KTDimScriptDlg scrDlg;
|
|
scrDlg.SetPipeDimScript(sText);
|
|
if (IDOK == scrDlg.DoModal())
|
|
{
|
|
scrDlg.GetPipeDimScript(m_sScriptDown);
|
|
|
|
sText2 = _T("");
|
|
PipeDetail2Script(m_sScriptDown,sText2);
|
|
m_pPipeInitData->SetAt(DOC_SCRIPTB,sText2);
|
|
|
|
m_sScriptDown.Replace(_T("{"),_T(""));
|
|
m_sScriptDown.Replace(_T("}"),_T(""));
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void KTInitDlg::InitFromMap()
|
|
{
|
|
if (m_pPipeInitData == NULL) return;
|
|
double dVal = 0.0;
|
|
int nVal = 0;
|
|
|
|
m_pPipeInitData->GetAt(DOC_TRADE,m_nTrade); //行业
|
|
m_pPipeInitData->GetAt(DOC_SCALE,m_sScale); //出图比例
|
|
m_pPipeInitData->GetAt(DOC_PLOTWIDTH,m_dPlotWidth); //最小打印线宽
|
|
m_pPipeInitData->GetAt(DOC_DPLOTWIDTH,m_dDPlotWidth);
|
|
m_pPipeInitData->GetAt(DOC_WELDDIA,m_dWeldDotDia); //焊点直径
|
|
|
|
m_pPipeInitData->GetAt(DOC_PIPEMINDIA,dVal); //最小管道直径
|
|
m_sPipeMinDia.Format(_T("%g"),dVal);
|
|
|
|
m_pPipeInitData->GetAt(DOC_PIPEMAXDIA,dVal); //最大管线直径
|
|
m_sPipeMaxDia.Format(_T("%g"),dVal);
|
|
|
|
m_pPipeInitData->GetAt(DOC_PIPEMAXDIASCALE,m_dMaxDiaDrawScale);//最大管线直径
|
|
m_pPipeInitData->GetAt(DOC_PIPEMAXDIASYES,m_bMaxDiaScale);//是否最大管线直径
|
|
|
|
//PID
|
|
m_pPipeInitData->GetAt(DOC_PERELBOWDIA,dVal); //垂直弯头直径
|
|
m_sPerElbowDia.Format(_T("%g"),dVal);
|
|
|
|
m_pPipeInitData->GetAt(DOC_BREAKSPACE,m_dBreakSpace); //交叉断线间距
|
|
|
|
m_pPipeInitData->GetAt(DOC_UNIT,nVal); //单位
|
|
CheckRadioButton(IDC_RADIOMETRIC,IDC_RADIOINCH,nVal + IDC_RADIOMETRIC);
|
|
|
|
m_pPipeInitData->GetAt(DOC_DIMTERM,nVal); //标注端符
|
|
CheckRadioButton(IDC_RADIONONE,IDC_RADIOARROW,nVal + IDC_RADIONONE);
|
|
|
|
m_pPipeInitData->GetAt(DOC_DIMTXTH,m_dTextHeight); //标注文字高度
|
|
m_pPipeInitData->GetAt(DOC_DIMTXTF,m_dTextWFact); //标注文字宽度系数
|
|
|
|
m_pPipeInitData->GetAt(DOC_DPLOTWIDTH,m_dPlotWidth); //双线打印线宽
|
|
|
|
m_pPipeInitData->GetAt(DOC_EQPTXTH,m_dEqpTxtHeight); //设备标注文字高度
|
|
m_pPipeInitData->GetAt(DOC_EQPTXTF,m_dEqpTxtWFact); //设备标注文字宽度系数
|
|
|
|
m_pPipeInitData->GetAt(DOC_STRTXTH,m_dStrTxtHeight); //结构标注文字高度
|
|
m_pPipeInitData->GetAt(DOC_STRTXTF,m_dStrTxtWFact); //结构标注文字宽度系数
|
|
|
|
// PID
|
|
m_pPipeInitData->GetAt(DOC_PIDMPIPE1W, m_dMPipeW); //主管道线宽
|
|
m_pPipeInitData->GetAt(DOC_PIDSPIPE1W, m_dSPipeW); //次管道线宽
|
|
m_pPipeInitData->GetAt(DOC_PIDINSRDN, nVal); //仪表泡直径
|
|
m_sInsRDN.Format(_T("%d"), nVal);
|
|
|
|
m_pPipeInitData->GetAt(DOC_VALVESCALE, m_dValveScale); //阀门比例
|
|
m_pPipeInitData->GetAt(DOC_EQUSCALE, m_dEquScale); //设备比例
|
|
m_pPipeInitData->GetAt(DOC_LINEARSCALE, m_dLinearScale);//线性比例
|
|
m_pPipeInitData->GetAt(DOC_NODESCALE, m_dNodeScale); //管嘴比例
|
|
m_pPipeInitData->GetAt(DOC_CONSIGN, m_dConSign); //续接符号
|
|
|
|
m_pPipeInitData->GetAt(DOC_PIDBARROW, m_dBigArrow); //大箭头
|
|
m_pPipeInitData->GetAt(DOC_PIDMARROW, m_dMidArrow); //中箭头
|
|
m_pPipeInitData->GetAt(DOC_PIDSARROW, m_dSmallArrow); //小箭头
|
|
|
|
m_pPipeInitData->GetAt(DOC_PIDEWITHDIM, m_bEquDim); //设备插入标注
|
|
m_pPipeInitData->GetAt(DOC_PIDVWITHDIM, m_bValveDim); //阀门插入标注
|
|
m_pPipeInitData->GetAt(DOC_PIDBRKSTYLE, m_nBrkStyle); //管线打断样式
|
|
|
|
/*enum PipeDim
|
|
{
|
|
kDN = 0,// 公称直径
|
|
kMedium = 1,// 介质
|
|
kPipeNo = 2,// 管号
|
|
kPipeGrade = 3,// 管道等级
|
|
kDxt = 4,// 外径x 壁厚
|
|
kEl = 5,// 标高
|
|
kType = 6,// 类型
|
|
kHeatIns = 7,// 保温伴热
|
|
kElbowRat = 8,// 弯头比率
|
|
kStandard = 9,// 标准
|
|
kMaterial = 10,//材质
|
|
kZone = 11,
|
|
kSystem = 12, // 系统
|
|
};*/
|
|
|
|
CString sText,sText2;//{0}{-}{1}{-}{2}{-}{3} -> {公称直径}{-}{介质}{-}{管道等级}
|
|
m_pPipeInitData->GetAt(DOC_SCRIPTT,sText); //上标脚本
|
|
|
|
sText.Replace(_T("{{"),_T("{"));
|
|
sText.Replace(_T("}}"),_T("}"));
|
|
|
|
PipeScript2Detail(sText,sText2);
|
|
m_sScriptUp = sText2;
|
|
|
|
m_pPipeInitData->GetAt(DOC_SCRIPTB,sText); //下标脚本
|
|
sText.Replace(_T("{{"), _T("{"));
|
|
sText.Replace(_T("}}"), _T("}"));
|
|
|
|
PipeScript2Detail(sText,sText2);
|
|
m_sScriptDown = sText2;
|
|
|
|
m_pPipeInitData->GetAt(DOC_ELTYPE,nVal); //标高设置
|
|
if (nVal >= 0 && nVal <= 2)
|
|
{
|
|
sText = g_pszElTypeTxt;
|
|
sText += g_pszElType[nVal];
|
|
m_wndElType.SetWindowText(sText);
|
|
|
|
switch(nVal)
|
|
{
|
|
case 0: //符号标高
|
|
{
|
|
m_wndEl.ShowWindow(SW_HIDE);
|
|
m_wndBmpEl.SetBitmap(m_bmpEl);
|
|
|
|
m_wndElBom.ShowWindow(SW_HIDE);
|
|
m_wndBmpBomEl.SetBitmap(m_bmpBomEl);
|
|
|
|
m_wndElCen.ShowWindow(SW_HIDE);
|
|
m_wndBmpCenEl.SetBitmap(m_bmpCenEl);
|
|
|
|
m_wndElTop.ShowWindow(SW_HIDE);
|
|
m_wndBmpTopEl.SetBitmap(m_bmpTopEl);
|
|
break;
|
|
}
|
|
case 1: //简写标高
|
|
{
|
|
m_sEl = PIPE_EL;
|
|
m_wndEl.SetWindowText(m_sEl);
|
|
m_wndBmpEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sTopEl = PIPE_TOP_EL;
|
|
m_wndElTop.SetWindowText(m_sTopEl);
|
|
m_wndBmpTopEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sCenEl = PIPE_CEN_EL;
|
|
m_wndElCen.SetWindowText(m_sCenEl);
|
|
m_wndBmpCenEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sBomEl = PIPE_BOM_EL;
|
|
m_wndElBom.SetWindowText(m_sBomEl);
|
|
m_wndBmpBomEl.ShowWindow(SW_HIDE);
|
|
break;
|
|
}
|
|
case 2: //自定义标高
|
|
{
|
|
m_pPipeInitData->GetAt(DOC_ELDESCR,sText);
|
|
ElDescr2EveryOne(sText);
|
|
|
|
m_wndEl.SetWindowText(m_sEl);
|
|
m_wndBmpEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElTop.SetWindowText(m_sTopEl);
|
|
m_wndBmpTopEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElCen.SetWindowText(m_sCenEl);
|
|
m_wndBmpCenEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElBom.SetWindowText(m_sBomEl);
|
|
m_wndBmpBomEl.ShowWindow(SW_HIDE);
|
|
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void KTInitDlg::InitProject()
|
|
{
|
|
CString dbPath = FilePath::GetSysDir();
|
|
dbPath += _T("\\Plumbing.db");
|
|
|
|
CUIISQLiteServer sqlDb;
|
|
if (!sqlDb.InitADOServer(dbPath))
|
|
{
|
|
AfxMessageBox(_T("数据库驱动加载数据库Plumbing.db失败!"));
|
|
return;
|
|
}
|
|
|
|
CString sSQL;
|
|
sSQL = _T("select [项目名称] from AecProjectname order by ID");
|
|
|
|
CStringArray arValues;
|
|
sqlDb.GetSelData(sSQL,arValues);
|
|
|
|
for (int i = 0;i < arValues.GetSize();i++)
|
|
{
|
|
m_wndProjectCombo.InsertString(i,arValues.GetAt(i));
|
|
}
|
|
|
|
CString sProject;
|
|
m_pPipeInitData->GetAt(DOC_PROJECT,sProject); //标注文字高度
|
|
if (m_nTrade == WPipe::eCivial)
|
|
{
|
|
sProject = _T("市政");//市政
|
|
}
|
|
m_pPipeInitData->GetAt(DOC_DNPRE,m_bDN);
|
|
m_pPipeInitData->GetAt(DOC_DPRE,m_bD);
|
|
m_pPipeInitData->GetAt(DOC_ADPRE,m_bO);
|
|
|
|
int nSel = m_wndProjectCombo.FindString(0,sProject);
|
|
if (nSel != -1)
|
|
{
|
|
m_wndProjectCombo.SetCurSel(nSel);
|
|
}
|
|
else
|
|
{
|
|
if (arValues.GetSize() > 0) m_wndProjectCombo.SetCurSel(0);
|
|
}
|
|
}
|
|
|
|
void KTInitDlg::ElDescr2EveryOne(CString& sText)
|
|
{
|
|
//--|--|--
|
|
int nLen = sText.GetLength();
|
|
if (nLen == 0) return;
|
|
|
|
int nIndex = sText.Find(KT_SEPARATOR_CHAR,0);
|
|
m_sEl = sText.Mid(0,nIndex);
|
|
|
|
sText.SetAt(nIndex,KT_SUBTRACT_CHAR); //'-'
|
|
int nIndex1 = nIndex;
|
|
nIndex = sText.Find(KT_SEPARATOR_CHAR,0); //'|'
|
|
if (nIndex != -1)
|
|
{
|
|
m_sTopEl = sText.Mid(nIndex1 + 1,nIndex - nIndex1 - 1);
|
|
sText.SetAt(nIndex,KT_SUBTRACT_CHAR);
|
|
}
|
|
|
|
nIndex1 = nIndex;
|
|
nIndex = sText.Find(KT_SEPARATOR_CHAR,0);
|
|
if (nIndex != -1)
|
|
{
|
|
m_sCenEl = sText.Mid(nIndex1 + 1,nIndex - nIndex1 - 1);
|
|
sText.SetAt(nIndex,KT_SUBTRACT_CHAR);
|
|
}
|
|
|
|
nIndex1 = nIndex + 1;
|
|
if (nIndex1 != -1)
|
|
{
|
|
m_sBomEl = sText.Mid(nIndex1);
|
|
sText.SetAt(nIndex,KT_SUBTRACT_CHAR);
|
|
}
|
|
}
|
|
|
|
BOOL KTInitDlg::DownLoad2Map()
|
|
{
|
|
UpdateData();
|
|
|
|
if (m_pPipeInitData == NULL) return FALSE;
|
|
//1.验证比例是否合法
|
|
int nIndex = m_sScale.Find(KT_COLON_CHAR,0); //':'
|
|
if (nIndex != -1 && nIndex < m_sScale.GetLength())
|
|
{
|
|
/* 2025.07.28 gjm
|
|
由于要求允许设置缩小比例,所以要支持 “1:0.1” 这种形式。
|
|
而大部分代码里,直接取“:”号后面的数值做比例系数。
|
|
故,在这里强制检查“:”号前面的数字是否为“1”。
|
|
而“:”号后面只要确定是正数字即可。
|
|
*/
|
|
|
|
int nLeft = _ttoi(m_sScale.Mid(0,nIndex));
|
|
if (nLeft != 1)
|
|
{
|
|
AfxMessageBox(_T("“出图比例”中,“:”号前数字必须为“1”。"));
|
|
return FALSE;
|
|
}
|
|
|
|
if (!VNST(m_sScale.Mid(nIndex + 1)))
|
|
{
|
|
AfxMessageBox(_T("“出图比例”中,“:”号后必须为数字。"));
|
|
return FALSE;
|
|
}
|
|
double dRight = _ttof(m_sScale.Mid(nIndex + 1));
|
|
if (dRight <= 0)
|
|
{
|
|
AfxMessageBox(_T("“出图比例”中,“:”号后数字必须大于“0”。"));
|
|
return FALSE;
|
|
}
|
|
|
|
//if (nLeft * nRight == __max(nLeft,nRight) )
|
|
//{
|
|
//}
|
|
//else
|
|
//{
|
|
// AfxMessageBox(IDS_SCALEINVALIDATE);
|
|
// return FALSE;
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
AfxMessageBox(IDS_SCALEINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
int nProj = m_wndProjectCombo.GetCurSel();
|
|
if (nProj == -1)
|
|
{
|
|
AfxMessageBox(_T("请选择项目!"));
|
|
return FALSE;
|
|
}
|
|
CString sProject;
|
|
m_wndProjectCombo.GetLBText(nProj,sProject);
|
|
|
|
m_pPipeInitData->SetAt(DOC_TRADE,m_nTrade); //行业
|
|
m_pPipeInitData->SetAt(DOC_PROJECT,sProject); //项目
|
|
m_pPipeInitData->SetAt(DOC_SCALE,m_sScale); //出图比例
|
|
m_pPipeInitData->SetAt(DOC_DNPRE,m_bDN);
|
|
m_pPipeInitData->SetAt(DOC_DPRE,m_bD);
|
|
m_pPipeInitData->SetAt(DOC_ADPRE,m_bO);
|
|
|
|
m_pPipeInitData->SetAt(DOC_PLOTWIDTH,m_dPlotWidth); //最小打印线宽
|
|
m_pPipeInitData->SetAt(DOC_DPLOTWIDTH,m_dDPlotWidth); //双线打印线宽
|
|
if (m_dWeldDotDia < -1.e-10)//可以为0
|
|
{
|
|
AfxMessageBox(IDS_WELDDIAINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_WELDDIA,m_dWeldDotDia); //焊点直径
|
|
|
|
double dVal = _ttof(m_sPipeMinDia);
|
|
if (dVal < 1.e-6)
|
|
{
|
|
AfxMessageBox(IDS_PIPEMINDIAINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_PIPEMINDIA,dVal); //最小管道直径
|
|
|
|
dVal = _ttof(m_sPipeMaxDia);
|
|
if (dVal < 1.e-6)
|
|
{
|
|
AfxMessageBox(IDS_PIPEMAXDIAINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_PIPEMAXDIA,dVal); //最大管线直径
|
|
|
|
m_pPipeInitData->SetAt(DOC_PIPEMAXDIASCALE,m_dMaxDiaDrawScale); //最大管线直径
|
|
m_pPipeInitData->SetAt(DOC_PIPEMAXDIASYES,m_bMaxDiaScale);//是否最大管线直径
|
|
|
|
dVal = _ttof(m_sPerElbowDia);
|
|
if (dVal < 1.e-6)
|
|
{
|
|
AfxMessageBox(IDS_PERELBOWDIAINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_PERELBOWDIA,dVal); //垂直弯头直径
|
|
|
|
if (m_dBreakSpace < 1.e-6)
|
|
{
|
|
AfxMessageBox(IDS_BREAKSPACEINVALIDATE);
|
|
return FALSE;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_BREAKSPACE,m_dBreakSpace); //交叉断线间距
|
|
|
|
m_pPipeInitData->SetAt(DOC_DIMTXTH,m_dTextHeight); //标注文字高度
|
|
m_pPipeInitData->SetAt(DOC_DIMTXTF,m_dTextWFact); //标注文字宽度系数
|
|
|
|
m_pPipeInitData->SetAt(DOC_EQPTXTH,m_dEqpTxtHeight); //设备标注文字高度
|
|
m_pPipeInitData->SetAt(DOC_EQPTXTF,m_dEqpTxtWFact); //设备标注文字宽度系数
|
|
|
|
m_pPipeInitData->SetAt(DOC_STRTXTH,m_dStrTxtHeight); //设备标注文字高度
|
|
m_pPipeInitData->SetAt(DOC_STRTXTF,m_dStrTxtWFact); //设备标注文字宽度系数
|
|
|
|
m_pPipeInitData->SetAt(DOC_UNIT, 0);//全部公制
|
|
|
|
int nVal = GetCheckedRadioButton(IDC_RADIONONE,IDC_RADIOARROW);
|
|
m_pPipeInitData->SetAt(DOC_DIMTERM,(nVal - IDC_RADIONONE));
|
|
|
|
CString sText;
|
|
m_wndElType.GetWindowText(sText);
|
|
nVal = 0;
|
|
if (sText.Find(g_pszElType[0],0) != -1)
|
|
{
|
|
nVal = 0;
|
|
}
|
|
if (sText.Find(g_pszElType[1],0) != -1)
|
|
{
|
|
nVal = 1;
|
|
}
|
|
if (sText.Find(g_pszElType[2],0) != -1)
|
|
{
|
|
nVal = 2;
|
|
}
|
|
m_pPipeInitData->SetAt(DOC_ELTYPE,nVal);
|
|
|
|
sText = _T("0");
|
|
if (nVal == 0)
|
|
{
|
|
m_pPipeInitData->SetAt(DOC_ELDESCR,sText);
|
|
}
|
|
if (nVal == 2 || nVal == 1)
|
|
{
|
|
if (nVal == 1)
|
|
{
|
|
m_sEl = PIPE_EL; //_T("EL")
|
|
m_sTopEl = PIPE_TOP_EL; //_T("TOP.EL")
|
|
m_sCenEl = PIPE_CEN_EL; //_T("CEN.EL")
|
|
m_sBomEl = PIPE_BOM_EL; //_T("BOM.EL")
|
|
}
|
|
sText = m_sEl + KT_SEPARATOR_STR + m_sTopEl + KT_SEPARATOR_STR + m_sCenEl + KT_SEPARATOR_STR + m_sBomEl;
|
|
m_pPipeInitData->SetAt(DOC_ELDESCR,sText);
|
|
}
|
|
|
|
// pid
|
|
m_pPipeInitData->SetAt(DOC_PIDMPIPE1W, m_dMPipeW); //主管道线宽
|
|
m_pPipeInitData->SetAt(DOC_PIDSPIPE1W, m_dSPipeW); //次管道线宽
|
|
nVal = _ttoi(m_sInsRDN);
|
|
m_pPipeInitData->SetAt(DOC_PIDINSRDN, nVal); //仪表泡直径
|
|
|
|
m_pPipeInitData->SetAt(DOC_VALVESCALE, m_dValveScale); //阀门比例
|
|
m_pPipeInitData->SetAt(DOC_EQUSCALE, m_dEquScale); //设备比例
|
|
m_pPipeInitData->SetAt(DOC_LINEARSCALE, m_dLinearScale);//线性比例
|
|
m_pPipeInitData->SetAt(DOC_NODESCALE, m_dNodeScale); //管嘴比例
|
|
m_pPipeInitData->SetAt(DOC_CONSIGN, m_dConSign); //续接符号
|
|
|
|
m_pPipeInitData->SetAt(DOC_PIDBARROW, m_dBigArrow); //大箭头
|
|
m_pPipeInitData->SetAt(DOC_PIDMARROW, m_dMidArrow); //中箭头
|
|
m_pPipeInitData->SetAt(DOC_PIDSARROW, m_dSmallArrow); //小箭头
|
|
|
|
m_pPipeInitData->SetAt(DOC_PIDEWITHDIM, m_bEquDim); //设备插入标注
|
|
m_pPipeInitData->SetAt(DOC_PIDVWITHDIM, m_bValveDim); //阀门插入标注
|
|
|
|
m_pPipeInitData->SetAt(DOC_PIDBRKSTYLE, m_nBrkStyle); //管线打断样式
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
//{公称直径}{-}{介质}{-}{管道等级} -> {0}{-}{1}{-}{2}{-}{3}
|
|
int KTInitDlg::PipeDetail2Script(CString& sText,CString& sText2)
|
|
{
|
|
int nIndex = 0;
|
|
CString sIndex,sTemp = sText;
|
|
while(TRUE)
|
|
{
|
|
if (g_pszPipeDim[nIndex] == NULL)
|
|
break;
|
|
|
|
if (sTemp.Find(g_pszPipeDim[nIndex]) != -1)
|
|
{
|
|
sIndex.Format(_T("{%d}"),nIndex);
|
|
sTemp.Replace(g_pszPipeDim[nIndex],sIndex);
|
|
sTemp.Replace(_T("{{"), _T("{"));
|
|
sTemp.Replace(_T("}}"), _T("}"));
|
|
}
|
|
nIndex += 1;
|
|
}
|
|
|
|
// 最后处理一下分隔符
|
|
int idx1(0), idx2(0);
|
|
while (true)
|
|
{
|
|
idx1 = sTemp.Find(_T('}'), idx2);
|
|
idx2 = sTemp.Find(_T('{'), idx1);
|
|
if (idx1 == -1 || idx2 == -1) break;
|
|
CString s = sTemp.Mid(idx1 + 1, idx2 - idx1 - 1);
|
|
sTemp.Replace(s, CString(_T('{')) + s + _T('}'));
|
|
}
|
|
|
|
sText2 = sTemp;
|
|
return TRUE;
|
|
}
|
|
|
|
//{0}{-}{1}{-}{2}{-}{3} -> {公称直径}{-}{介质}{-}{管道等级}
|
|
int KTInitDlg::PipeScript2Detail(CString& sText,CString& sText2)
|
|
{
|
|
CString sTemp,sItem,sNewTxt = _T(""),sNewTxt2 = _T("");
|
|
int nIndex1 = -1,nIndex2 = -1;
|
|
while(TRUE)
|
|
{
|
|
if (sText.GetLength() == 0) break;
|
|
|
|
nIndex1 = sText.Find(KT_OPEN_BRACE_CHAR,0); //'{'
|
|
nIndex2 = sText.Find(KT_CLOSE_BRACE_CHAR,0); //'}'
|
|
if (nIndex1 != -1 && nIndex2 != -1)
|
|
{
|
|
sTemp = sText.Mid(nIndex1 + 1,nIndex2 - nIndex1 - 1);
|
|
int nIndex = _ttoi(sTemp);
|
|
if (nIndex > 0)
|
|
{
|
|
if (nIndex <= WPipe::kSystem)
|
|
{
|
|
sNewTxt += KT_OPEN_BRACE_STR; //"{"
|
|
sNewTxt += g_pszPipeDim[nIndex];
|
|
sNewTxt += KT_CLOSE_BRACE_STR; //"}"
|
|
sNewTxt2 += g_pszPipeDim[nIndex];
|
|
}
|
|
else
|
|
{
|
|
sNewTxt += sText.Mid(nIndex1,nIndex2 - nIndex1 + 1);
|
|
sNewTxt2 += sText.Mid(nIndex1 + 1,nIndex2 - nIndex1 - 1);
|
|
}
|
|
}
|
|
else if (nIndex == 0)
|
|
{
|
|
if (sTemp.CompareNoCase(_T("0")) == 0)
|
|
{
|
|
sNewTxt += KT_OPEN_BRACE_STR; //"{"
|
|
sNewTxt += g_pszPipeDim[0];
|
|
sNewTxt += KT_CLOSE_BRACE_STR; //"}"
|
|
sNewTxt2 += g_pszPipeDim[nIndex];
|
|
}
|
|
else
|
|
{
|
|
sNewTxt += sText.Mid(nIndex1,nIndex2 - nIndex1 + 1);
|
|
sNewTxt2 += sText.Mid(nIndex1 + 1,nIndex2 - nIndex1 - 1);
|
|
}
|
|
}
|
|
if (nIndex2 + 1 < sText.GetLength())
|
|
{
|
|
sTemp = sText.Mid(nIndex2 + 1);
|
|
sText = sTemp;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
sText2 = sNewTxt2;
|
|
sText = sNewTxt;
|
|
return sText.GetLength();
|
|
}
|
|
|
|
void KTInitDlg::OnBtelsetup()
|
|
{
|
|
int nVal = 0;
|
|
m_pPipeInitData->GetAt(DOC_ELTYPE,nVal);
|
|
|
|
KTElSetupDlg wndElDlg;
|
|
wndElDlg.m_nElGroup = nVal;
|
|
wndElDlg.m_sEl = m_sEl;
|
|
wndElDlg.m_sTopEl = m_sTopEl;
|
|
wndElDlg.m_sCenEl = m_sCenEl;
|
|
wndElDlg.m_sBomEl = m_sBomEl;
|
|
|
|
int nRes = wndElDlg.DoModal();
|
|
if (nRes == IDOK)
|
|
{
|
|
m_pPipeInitData->SetAt(DOC_ELTYPE,wndElDlg.m_nElGroup);
|
|
nVal = wndElDlg.m_nElGroup;
|
|
if (nVal >= 0 && nVal <= 2)
|
|
{
|
|
CString sText;
|
|
sText = g_pszElTypeTxt;
|
|
sText += g_pszElType[nVal];
|
|
m_wndElType.SetWindowText(sText);
|
|
|
|
switch(nVal)
|
|
{
|
|
case 0: //符号标高
|
|
{
|
|
m_wndEl.ShowWindow(SW_HIDE);
|
|
m_wndBmpEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpEl.SetBitmap(m_bmpEl);
|
|
|
|
m_wndElBom.ShowWindow(SW_HIDE);
|
|
m_wndBmpBomEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpBomEl.SetBitmap(m_bmpBomEl);
|
|
|
|
m_wndElCen.ShowWindow(SW_HIDE);
|
|
m_wndBmpCenEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpCenEl.SetBitmap(m_bmpCenEl);
|
|
|
|
m_wndElTop.ShowWindow(SW_HIDE);
|
|
m_wndBmpTopEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpTopEl.SetBitmap(m_bmpTopEl);
|
|
break;
|
|
}
|
|
case 1: //简写标高
|
|
{
|
|
m_sEl = PIPE_EL;
|
|
m_wndEl.SetWindowText(m_sEl);
|
|
m_wndEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sTopEl = PIPE_TOP_EL;
|
|
m_wndElTop.SetWindowText(m_sTopEl);
|
|
m_wndElTop.ShowWindow(SW_SHOW);
|
|
m_wndBmpTopEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sCenEl = PIPE_CEN_EL;
|
|
m_wndElCen.SetWindowText(m_sCenEl);
|
|
m_wndElCen.ShowWindow(SW_SHOW);
|
|
m_wndBmpCenEl.ShowWindow(SW_HIDE);
|
|
|
|
m_sBomEl = PIPE_BOM_EL;
|
|
m_wndElBom.SetWindowText(m_sBomEl);
|
|
m_wndElBom.ShowWindow(SW_SHOW);
|
|
m_wndBmpBomEl.ShowWindow(SW_HIDE);
|
|
break;
|
|
}
|
|
case 2: //自定义标高
|
|
{
|
|
m_sEl = wndElDlg.m_sEl;
|
|
m_sTopEl = wndElDlg.m_sTopEl;
|
|
m_sCenEl = wndElDlg.m_sCenEl;
|
|
m_sBomEl = wndElDlg.m_sBomEl;
|
|
|
|
m_wndEl.SetWindowText(m_sEl);
|
|
m_wndEl.ShowWindow(SW_SHOW);
|
|
m_wndBmpEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElTop.SetWindowText(m_sTopEl);
|
|
m_wndElTop.ShowWindow(SW_SHOW);
|
|
m_wndBmpTopEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElCen.SetWindowText(m_sCenEl);
|
|
m_wndElCen.ShowWindow(SW_SHOW);
|
|
m_wndBmpCenEl.ShowWindow(SW_HIDE);
|
|
|
|
m_wndElBom.SetWindowText(m_sBomEl);
|
|
m_wndElBom.ShowWindow(SW_SHOW);
|
|
m_wndBmpBomEl.ShowWindow(SW_HIDE);
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void KTInitDlg::OnBnClickedChecko()
|
|
{
|
|
UpdateData();
|
|
GetDlgItem(IDC_CHECKD)->EnableWindow(!m_bO);
|
|
GetDlgItem(IDC_CHECKDN)->EnableWindow(!m_bO);
|
|
}
|