666 lines
16 KiB
C++
666 lines
16 KiB
C++
#include "stdafx.h"
|
||||
|
|
#include "FloorHoleDlg.h"
|
|||
|
|
#include "SelectBlkDlg.h"
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
#define new DEBUG_NEW
|
|||
|
|
#undef THIS_FILE
|
|||
|
|
static char THIS_FILE[] = __FILE__;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNAMIC(CFloorArcHoleDlg, CDialog)
|
|||
|
|
CFloorArcHoleDlg::CFloorArcHoleDlg(CWnd* pParent/* = NULL*/)
|
|||
|
|
: CDialog(CFloorArcHoleDlg::IDD, pParent)
|
|||
|
|
{
|
|||
|
|
//{{AFX_DATA_INIT(CFloorArcHoleDlg)
|
|||
|
|
//}}AFX_DATA_INIT
|
|||
|
|
m_strSysBlk = _T("TWTSYS(00000515)");
|
|||
|
|
m_sOldDiameter = _T("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorArcHoleDlg::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CDialog::DoDataExchange(pDX);
|
|||
|
|
//{{AFX_DATA_MAP(CFloorArcHoleDlg)
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_SUPERSCRIPT, m_cmbSuperscript);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_SUBSCRIPT, m_cmbSubscript);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_DIAMETER, m_cmbDiameter);
|
|||
|
|
//}}AFX_DATA_MAP
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CFloorArcHoleDlg::~CFloorArcHoleDlg()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CFloorArcHoleDlg, CDialog)
|
|||
|
|
//{{AFX_MSG_MAP(CFloorArcHoleDlg)
|
|||
|
|
ON_WM_CLOSE()
|
|||
|
|
ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
|
|||
|
|
ON_WM_PAINT()
|
|||
|
|
ON_WM_DESTROY()
|
|||
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_DIAMETER, OnEditchangeComboDiameter)
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_DIAMETER, OnSelchangeComboDiameter)
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
BOOL CFloorArcHoleDlg::OnInitDialog()
|
|||
|
|
{
|
|||
|
|
CDialog::OnInitDialog();
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorArcHoleDlg::OnPreview()
|
|||
|
|
{
|
|||
|
|
UpdateData();
|
|||
|
|
|
|||
|
|
CTemporaryResourceOverride vTemp;
|
|||
|
|
CSelectBlkDlg dlg;
|
|||
|
|
dlg.m_csTkName = _T("TWTSYS");
|
|||
|
|
dlg.m_csType = _T("楼板洞");
|
|||
|
|
CWnd *pWnd = GetDlgItem(IDC_PREVIEW);
|
|||
|
|
CRect rect;
|
|||
|
|
dlg.m_staticSlide.m_csCurRecord = m_strSysBlk;
|
|||
|
|
pWnd->GetWindowRect(&rect);
|
|||
|
|
dlg.m_ptBase = rect.TopLeft();
|
|||
|
|
if(dlg.DoModal() == IDOK)
|
|||
|
|
{
|
|||
|
|
CString strRet = dlg.m_staticSlide.m_csCurRecord;
|
|||
|
|
CString strDes = dlg.m_staticSlide.m_csCurDesName;
|
|||
|
|
|
|||
|
|
m_strSysBlk = _tcsrchr(strRet,_T('\\'))+1;
|
|||
|
|
|
|||
|
|
XString xsTKName, xsRocord;
|
|||
|
|
SplitSlbName(strRet, xsTKName, xsRocord);
|
|||
|
|
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
|
|||
|
|
XString xsBlk;
|
|||
|
|
LoadDwbBlock(xsTKName, xsRocord, xsBlk);
|
|||
|
|
m_strInsBlkName = xsBlk;
|
|||
|
|
acDocManager->unlockDocument(curDoc());
|
|||
|
|
OpenSlide();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorArcHoleDlg::OpenSlide()
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
CWnd *pImageBox = GetDlgItem(IDC_PREVIEW);
|
|||
|
|
CString strTKName, strRocord;
|
|||
|
|
CString strSlb;
|
|||
|
|
SplitBlkStr(m_strInsBlkName, strTKName, strRocord);
|
|||
|
|
strSlb.Format(_T("%s(%s)"), strTKName, strRocord);
|
|||
|
|
|
|||
|
|
DrawSlide((const TCHAR*)strSlb, pImageBox);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorArcHoleDlg::OnPaint()
|
|||
|
|
{
|
|||
|
|
CPaintDC dc(this);
|
|||
|
|
OpenSlide();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorArcHoleDlg::OnEditchangeComboDiameter()
|
|||
|
|
{
|
|||
|
|
SetSuperscirptVal();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//cet 2010.1.4 add
|
|||
|
|
void CFloorArcHoleDlg::SetSuperscirptVal()
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
CString strText;
|
|||
|
|
m_cmbDiameter.GetWindowText(strText);
|
|||
|
|
double dW = _tstof(strText);
|
|||
|
|
if (dW <= 0.0)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("直径输入有误!"));
|
|||
|
|
m_cmbDiameter.SetWindowText(m_sOldDiameter);
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_sOldDiameter = strText;
|
|||
|
|
strText = _T("φ") + strText + _T("板洞");
|
|||
|
|
m_cmbSuperscript.SetWindowText(strText);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//cet 2010.1.4 add
|
|||
|
|
void CFloorArcHoleDlg::OnSelchangeComboDiameter()
|
|||
|
|
{
|
|||
|
|
int nIndex = -1;
|
|||
|
|
nIndex = m_cmbDiameter.GetCurSel();
|
|||
|
|
if (nIndex != -1)
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
m_cmbDiameter.GetLBText(nIndex, str);
|
|||
|
|
m_sOldDiameter = str;
|
|||
|
|
str = _T("φ") + str + _T("板洞");
|
|||
|
|
m_cmbSuperscript.SetWindowText(str);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
IMPLEMENT_DYNAMIC(CFloorRectHoleDlg, CDialog)
|
|||
|
|
CFloorRectHoleDlg::CFloorRectHoleDlg(CWnd* pParent/* = NULL*/)
|
|||
|
|
: CDialog(CFloorRectHoleDlg::IDD, pParent)
|
|||
|
|
{
|
|||
|
|
//{{AFX_DATA_INIT(CFloorRectHoleDlg)
|
|||
|
|
//}}AFX_DATA_INIT
|
|||
|
|
m_strSysBlk = _T("TWTSYS(00000552)");
|
|||
|
|
m_sOldH = _T("");
|
|||
|
|
m_sOldW = _T("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CDialog::DoDataExchange(pDX);
|
|||
|
|
//{{AFX_DATA_MAP(CFloorRectHoleDlg)
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_SUPERSCRIPT, m_cmbSuperscript);
|
|||
|
|
DDX_Control(pDX, IDC_EDIT_SUBSCRIPT, m_edtSubscript);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_H, m_cmbH);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO_W, m_cmbW);
|
|||
|
|
//}}AFX_DATA_MAP
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CFloorRectHoleDlg::~CFloorRectHoleDlg()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CFloorRectHoleDlg, CDialog)
|
|||
|
|
//{{AFX_MSG_MAP(CFloorRectHoleDlg)
|
|||
|
|
ON_WM_CLOSE()
|
|||
|
|
ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
|
|||
|
|
ON_WM_PAINT()
|
|||
|
|
ON_WM_DESTROY()
|
|||
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_H, OnEditchangeComboH)
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_H, OnSelchangeComboH)
|
|||
|
|
ON_CBN_EDITCHANGE(IDC_COMBO_W, OnEditchangeComboW)
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO_W, OnSelchangeComboW)
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::ModifySuperscript()
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
CString strH, strW;
|
|||
|
|
m_cmbH.GetWindowText(strH);
|
|||
|
|
double dH = _tstof(strH);
|
|||
|
|
if (dH <= 0.0)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("洞厚输入有误!"));
|
|||
|
|
m_cmbH.SetWindowText(m_sOldH);
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
m_cmbW.GetWindowText(strW);
|
|||
|
|
double dW = _tstof(strW);
|
|||
|
|
if (dW <= 0.0)
|
|||
|
|
{
|
|||
|
|
AfxMessageBox(_T("洞宽输入有误!"));
|
|||
|
|
m_cmbW.SetWindowText(m_sOldW);
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
CString strText;
|
|||
|
|
strText = strW + _T("×") + strH + _T("板洞");
|
|||
|
|
m_cmbSuperscript.SetWindowText(strText);
|
|||
|
|
m_sOldH = strH;
|
|||
|
|
m_sOldW = strW;
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
}
|
|||
|
|
void CFloorRectHoleDlg::OnEditchangeComboH()
|
|||
|
|
{
|
|||
|
|
ModifySuperscript();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OnSelchangeComboH()
|
|||
|
|
{
|
|||
|
|
int nIndex = -1;
|
|||
|
|
nIndex = m_cmbH.GetCurSel();
|
|||
|
|
if (nIndex == -1)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
CString strH, strW;
|
|||
|
|
m_cmbH.GetLBText(nIndex, strH);
|
|||
|
|
m_sOldH = strH;
|
|||
|
|
m_cmbW.GetWindowText(strW);
|
|||
|
|
CString strText;
|
|||
|
|
strText = strW + _T("×") + strH + _T("板洞");
|
|||
|
|
m_cmbSuperscript.SetWindowText(strText);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OnEditchangeComboW()
|
|||
|
|
{
|
|||
|
|
ModifySuperscript();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OnSelchangeComboW()
|
|||
|
|
{
|
|||
|
|
int nIndex = -1;
|
|||
|
|
nIndex = m_cmbW.GetCurSel();
|
|||
|
|
if (nIndex == -1)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CString strH, strW;
|
|||
|
|
m_cmbH.GetWindowText(strH);
|
|||
|
|
m_cmbW.GetLBText(nIndex, strW);
|
|||
|
|
m_sOldW = strW;
|
|||
|
|
CString strText;
|
|||
|
|
strText = strW + _T("×") + strH + _T("板洞");
|
|||
|
|
m_cmbSuperscript.SetWindowText(strText);
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CFloorRectHoleDlg::OnInitDialog()
|
|||
|
|
{
|
|||
|
|
CDialog::OnInitDialog();
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OnPreview()
|
|||
|
|
{
|
|||
|
|
UpdateData();
|
|||
|
|
|
|||
|
|
CTemporaryResourceOverride vTemp;
|
|||
|
|
CSelectBlkDlg dlg;
|
|||
|
|
dlg.m_csTkName = _T("TWTSYS");
|
|||
|
|
dlg.m_csType = _T("楼板洞\\方形楼板洞");
|
|||
|
|
CWnd *pWnd = GetDlgItem(IDC_PREVIEW);
|
|||
|
|
CRect rect;
|
|||
|
|
dlg.m_staticSlide.m_csCurRecord = m_strSysBlk;
|
|||
|
|
pWnd->GetWindowRect(&rect);
|
|||
|
|
dlg.m_ptBase = rect.TopLeft();
|
|||
|
|
if(dlg.DoModal() == IDOK)
|
|||
|
|
{
|
|||
|
|
CString strRet = dlg.m_staticSlide.m_csCurRecord;
|
|||
|
|
CString strDes = dlg.m_staticSlide.m_csCurDesName;
|
|||
|
|
|
|||
|
|
m_strSysBlk = _tcsrchr(strRet,_T('\\'))+1;
|
|||
|
|
|
|||
|
|
XString xsTKName, xsRocord;
|
|||
|
|
SplitSlbName(strRet, xsTKName, xsRocord);
|
|||
|
|
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
|
|||
|
|
XString xsBlk;
|
|||
|
|
LoadDwbBlock(xsTKName, xsRocord, xsBlk);
|
|||
|
|
m_strInsBlkName = xsBlk;
|
|||
|
|
acDocManager->unlockDocument(curDoc());
|
|||
|
|
OpenSlide();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OpenSlide()
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
CWnd *pImageBox = GetDlgItem(IDC_PREVIEW);
|
|||
|
|
CString strTKName, strRocord;
|
|||
|
|
CString strSlb;
|
|||
|
|
SplitBlkStr(m_strInsBlkName, strTKName, strRocord);
|
|||
|
|
strSlb.Format(_T("%s(%s)"), strTKName, strRocord);
|
|||
|
|
|
|||
|
|
DrawSlide((const TCHAR*)strSlb, pImageBox);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorRectHoleDlg::OnPaint()
|
|||
|
|
{
|
|||
|
|
CPaintDC dc(this);
|
|||
|
|
OpenSlide();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
IMPLEMENT_DYNAMIC(CFloorHoleDlg, CModelessDialog)
|
|||
|
|
CFloorHoleDlg::CFloorHoleDlg(int iType, CWnd* pParent /*=NULL*/)
|
|||
|
|
: CModelessDialog(CFloorHoleDlg::IDD, pParent)
|
|||
|
|
{
|
|||
|
|
m_bDestroy = FALSE;
|
|||
|
|
m_nType = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CModelessDialog::DoDataExchange(pDX);
|
|||
|
|
//{{AFX_DATA_MAP(CFloorHoleDlg)
|
|||
|
|
DDX_Control(pDX, IDC_TAB_FLOOR_BASE, m_wndTabLinkType);
|
|||
|
|
//}}AFX_DATA_MAP
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CFloorHoleDlg::~CFloorHoleDlg()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CFloorHoleDlg, CModelessDialog)
|
|||
|
|
//{{AFX_MSG_MAP(CFloorHoleDlg)
|
|||
|
|
ON_MESSAGE(WM_ACAD_KEEPFOCUS, onAcadKeepFocus)
|
|||
|
|
ON_WM_CLOSE()
|
|||
|
|
ON_WM_DESTROY()
|
|||
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_FLOOR_BASE, OnSelchangeTabFloorBase)
|
|||
|
|
//}}AFX_MSG_MAP
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
LONG_PTR CFloorHoleDlg::onAcadKeepFocus(UINT_PTR, LONG_PTR)
|
|||
|
|
{
|
|||
|
|
CPoint pt;
|
|||
|
|
GetCursorPos(&pt);
|
|||
|
|
CRect rc;
|
|||
|
|
GetWindowRect(&rc);
|
|||
|
|
return (rc.PtInRect(pt) ? TRUE : FALSE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CString CFloorHoleDlg::getSuperscript()
|
|||
|
|
{
|
|||
|
|
CString strSuperscript;
|
|||
|
|
m_wndArcHoleDlg.m_cmbSuperscript.GetWindowText(strSuperscript);
|
|||
|
|
strSuperscript.Replace(_T("φ"),_T("%%c"));
|
|||
|
|
|
|||
|
|
return strSuperscript;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CString CFloorHoleDlg::getSubscript()
|
|||
|
|
{
|
|||
|
|
CString strSubscript;
|
|||
|
|
m_wndArcHoleDlg.m_cmbSubscript.GetWindowText(strSubscript);
|
|||
|
|
strSubscript.Replace(_T("φ"),_T("%%c"));
|
|||
|
|
|
|||
|
|
return strSubscript;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
double CFloorHoleDlg::getRadius()
|
|||
|
|
{
|
|||
|
|
CString str;
|
|||
|
|
m_wndArcHoleDlg.m_cmbDiameter.GetWindowText(str);
|
|||
|
|
double dRadius = _tstof(str) / 2;
|
|||
|
|
return dRadius;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::OnClose()
|
|||
|
|
{
|
|||
|
|
DestroyWindow();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::UpdateDlgData(BOOL bIsRead)
|
|||
|
|
{
|
|||
|
|
CRegProperty regProp(GetRegLocation(), _T("FloorHoleConfig"));
|
|||
|
|
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
|||
|
|
|
|||
|
|
CString strDiameter;
|
|||
|
|
CString strSuperscript;
|
|||
|
|
CString strSubscript;
|
|||
|
|
CString strSuperscript2;
|
|||
|
|
CString strSubscript2;
|
|||
|
|
CString strH;
|
|||
|
|
CString strW;
|
|||
|
|
|
|||
|
|
if (bIsRead)
|
|||
|
|
{
|
|||
|
|
regProp.GetValue(_T("HoleType"), m_nType);
|
|||
|
|
if (regProp.GetValue(_T("Diameter"), strDiameter))
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_cmbDiameter.SetWindowText(strDiameter);
|
|||
|
|
m_wndArcHoleDlg.m_sOldDiameter = strDiameter;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_cmbDiameter.SetCurSel(0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(regProp.GetValue(_T("FloorSuperscript"), strSuperscript))
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_cmbSuperscript.SetWindowText(strSuperscript);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_cmbSuperscript.SetCurSel(0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (regProp.GetValue(_T("FloorSubscript"), strSubscript))
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_cmbSubscript.SetWindowText(strSubscript);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(regProp.GetValue(_T("FloorSuperscriptRect"), strSuperscript2))
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbSuperscript.SetWindowText(strSuperscript2);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbSuperscript.SetCurSel(0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (regProp.GetValue(_T("FloorSubscriptRect"), strSubscript2))
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_edtSubscript.SetWindowText(strSubscript2);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(regProp.GetValue(_T("FloorRectH"), strH))
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbH.SetWindowText(strH);
|
|||
|
|
m_wndRectHoleDlg.m_sOldH = strH;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbH.SetCurSel(2);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(regProp.GetValue(_T("FloorRectW"), strW))
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbW.SetWindowText(strW);
|
|||
|
|
m_wndRectHoleDlg.m_sOldH = strW;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.m_cmbW.SetCurSel(0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!regProp.GetValue(_T("strBlkName"), m_wndArcHoleDlg.m_strSysBlk)
|
|||
|
|
|| !regProp.GetValue(_T("strBlkNameRect"), m_wndRectHoleDlg.m_strSysBlk))
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.m_strInsBlkName = _T("TWTSYS(00000515)");
|
|||
|
|
m_wndRectHoleDlg.m_strInsBlkName = _T("TWTSYS(00000552)");
|
|||
|
|
}
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
|
|||
|
|
if (m_nType == 1)
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.ModifySuperscript();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
m_nType = m_wndTabLinkType.GetCurSel();
|
|||
|
|
|
|||
|
|
regProp.SetValue(_T("HoleType"), m_nType);
|
|||
|
|
strSuperscript = getSuperscript();
|
|||
|
|
strSuperscript.Replace(_T("%%c"),_T("φ"));
|
|||
|
|
regProp.SetValue(_T("FloorSuperscript"), strSuperscript);
|
|||
|
|
|
|||
|
|
strSubscript = getSubscript();
|
|||
|
|
strSubscript.Replace(_T("%%c"),_T("φ"));
|
|||
|
|
regProp.SetValue(_T("FloorSubscript"), strSubscript);
|
|||
|
|
|
|||
|
|
m_wndArcHoleDlg.m_cmbDiameter.GetWindowText(strDiameter);
|
|||
|
|
regProp.SetValue(_T("Diameter"),strDiameter);
|
|||
|
|
|
|||
|
|
m_wndRectHoleDlg.m_cmbSuperscript.GetWindowText(strSuperscript2);
|
|||
|
|
regProp.SetValue(_T("FloorSuperscriptRect"), strSuperscript2);
|
|||
|
|
|
|||
|
|
m_wndRectHoleDlg.m_edtSubscript.GetWindowText(strSubscript2);
|
|||
|
|
regProp.SetValue(_T("FloorSubscriptRect"), strSubscript2);
|
|||
|
|
|
|||
|
|
m_wndRectHoleDlg.m_cmbH.GetWindowText(strH);
|
|||
|
|
regProp.SetValue(_T("FloorRectH"), strH);
|
|||
|
|
|
|||
|
|
m_wndRectHoleDlg.m_cmbW.GetWindowText(strW);
|
|||
|
|
regProp.SetValue(_T("FloorRectW"), strW);
|
|||
|
|
|
|||
|
|
regProp.SetValue(_T("strBlkName"), m_wndArcHoleDlg.m_strSysBlk);
|
|||
|
|
regProp.SetValue(_T("strBlkNameRect"), m_wndRectHoleDlg.m_strSysBlk);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
BOOL CFloorHoleDlg::OnInitDialog()
|
|||
|
|
{
|
|||
|
|
CModelessDialog::OnInitDialog();
|
|||
|
|
m_wndTabLinkType.InsertItem(0, _T("圆形楼板洞"));
|
|||
|
|
m_wndTabLinkType.InsertItem(1, _T("方形楼板洞"));
|
|||
|
|
|
|||
|
|
m_wndArcHoleDlg.Create(IDD_FLOOR_BASE_ARC, &m_wndTabLinkType);
|
|||
|
|
m_wndRectHoleDlg.Create(IDD_FLOOR_BASE_RECT, &m_wndTabLinkType);
|
|||
|
|
UpdateDlgData(TRUE);
|
|||
|
|
|
|||
|
|
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
|
|||
|
|
XString xsBlk;
|
|||
|
|
XString xsTKName, xsRocord;
|
|||
|
|
SplitSlbName(m_wndArcHoleDlg.m_strSysBlk, xsTKName, xsRocord);
|
|||
|
|
LoadDwbBlock(xsTKName, xsRocord, xsBlk);
|
|||
|
|
m_wndArcHoleDlg.m_strInsBlkName = xsBlk;
|
|||
|
|
acDocManager->unlockDocument(curDoc());
|
|||
|
|
m_wndArcHoleDlg.OpenSlide();
|
|||
|
|
|
|||
|
|
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
|
|||
|
|
SplitSlbName(m_wndRectHoleDlg.m_strSysBlk, xsTKName, xsRocord);
|
|||
|
|
LoadDwbBlock(xsTKName, xsRocord, xsBlk);
|
|||
|
|
m_wndRectHoleDlg.m_strInsBlkName = xsBlk;
|
|||
|
|
acDocManager->unlockDocument(curDoc());
|
|||
|
|
m_wndRectHoleDlg.OpenSlide();
|
|||
|
|
|
|||
|
|
m_wndTabLinkType.SetCurSel(m_nType);
|
|||
|
|
if (m_nType == 0)
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.ShowWindow(SW_SHOW);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.ShowWindow(SW_SHOW);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CRect rect;
|
|||
|
|
m_wndTabLinkType.GetClientRect(&rect);
|
|||
|
|
rect.right += 20;
|
|||
|
|
m_wndTabLinkType.MoveWindow(&rect);
|
|||
|
|
|
|||
|
|
m_wndArcHoleDlg.GetClientRect(&rect);
|
|||
|
|
rect.left += 7;
|
|||
|
|
rect.top += 25;
|
|||
|
|
rect.right += 7;
|
|||
|
|
rect.bottom += 25;
|
|||
|
|
m_wndArcHoleDlg.MoveWindow(&rect);
|
|||
|
|
|
|||
|
|
m_wndRectHoleDlg.GetClientRect (&rect);
|
|||
|
|
rect.left += 7;
|
|||
|
|
rect.top += 25;
|
|||
|
|
rect.right += 7;
|
|||
|
|
rect.bottom += 25;
|
|||
|
|
m_wndRectHoleDlg.MoveWindow(&rect);
|
|||
|
|
UpdateData(FALSE);
|
|||
|
|
ModifyWndRect();
|
|||
|
|
|
|||
|
|
m_wndArcHoleDlg.SetSuperscirptVal();
|
|||
|
|
m_wndRectHoleDlg.ModifySuperscript();
|
|||
|
|
return TRUE;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::ModifyWndRect()
|
|||
|
|
{
|
|||
|
|
static CRect rectPipe, rectVPipe;
|
|||
|
|
if (rectPipe.IsRectEmpty())
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.GetWindowRect(&rectPipe);
|
|||
|
|
m_wndArcHoleDlg.GetWindowRect(&rectVPipe);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
switch(m_wndTabLinkType.GetCurSel())
|
|||
|
|
{
|
|||
|
|
case 0:
|
|||
|
|
{
|
|||
|
|
m_wndArcHoleDlg.ShowWindow(SW_SHOW);
|
|||
|
|
m_wndRectHoleDlg.ShowWindow(SW_HIDE);
|
|||
|
|
|
|||
|
|
// 调整对话框大小,以适应属性页
|
|||
|
|
CRect rect;
|
|||
|
|
GetClientRect(&rect);
|
|||
|
|
double dW1 = 0.0, dW2 = 0.0, dH1 = 0.0, dH2 = 0.0;
|
|||
|
|
dW1 = rectVPipe.Width();
|
|||
|
|
dW2 = rect.Width();
|
|||
|
|
dH1 = rectVPipe.Height();
|
|||
|
|
dH2 = rect.Height();
|
|||
|
|
GetWindowRect(&rect);
|
|||
|
|
rect.right += dW1 - dW2 + 25;
|
|||
|
|
rect.bottom += dH1 - dH2 + 40;
|
|||
|
|
MoveWindow(&rect);
|
|||
|
|
// 调整tab大小
|
|||
|
|
m_wndTabLinkType.GetClientRect(&rect);
|
|||
|
|
dW1 = rectVPipe.Width();
|
|||
|
|
dW2 = rect.Width();
|
|||
|
|
dH1 = rectVPipe.Height();
|
|||
|
|
dH2 = rect.Height();
|
|||
|
|
rect.left += 5;
|
|||
|
|
rect.top += 5;
|
|||
|
|
rect.right += dW1 - dW2 + 20;
|
|||
|
|
rect.bottom += dH1 - dH2 + 35;
|
|||
|
|
m_wndTabLinkType.MoveWindow(&rect);
|
|||
|
|
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case 1:
|
|||
|
|
{
|
|||
|
|
m_wndRectHoleDlg.ShowWindow(SW_SHOW);
|
|||
|
|
m_wndArcHoleDlg.ShowWindow(SW_HIDE);
|
|||
|
|
|
|||
|
|
// 调整对话框大小,以适应属性页
|
|||
|
|
CRect rect;
|
|||
|
|
GetClientRect(&rect);
|
|||
|
|
double dW1 = 0.0, dW2 = 0.0, dH1 = 0.0, dH2 = 0.0;
|
|||
|
|
dW1 = rectPipe.Width();
|
|||
|
|
dW2 = rect.Width();
|
|||
|
|
dH1 = rectPipe.Height();
|
|||
|
|
dH2 = rect.Height();
|
|||
|
|
GetWindowRect(&rect);
|
|||
|
|
rect.right += dW1 - dW2 + 25;
|
|||
|
|
rect.bottom += dH1 - dH2 + 40;
|
|||
|
|
MoveWindow(&rect);
|
|||
|
|
// 调整tab大小
|
|||
|
|
m_wndTabLinkType.GetClientRect(&rect);
|
|||
|
|
dW1 = rectPipe.Width();
|
|||
|
|
dW2 = rect.Width();
|
|||
|
|
dH1 = rectPipe.Height();
|
|||
|
|
dH2 = rect.Height();
|
|||
|
|
rect.left += 5;
|
|||
|
|
rect.top += 5;
|
|||
|
|
rect.right += dW1 - dW2 + 20;
|
|||
|
|
rect.bottom += dH1 - dH2 + 35;
|
|||
|
|
m_wndTabLinkType.MoveWindow(&rect);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::OnDestroy()
|
|||
|
|
{
|
|||
|
|
m_bDestroy = TRUE;
|
|||
|
|
UpdateDlgData(FALSE);
|
|||
|
|
CModelessDialog::OnDestroy();
|
|||
|
|
|
|||
|
|
acedPostCommand(_T("\33\33"));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CFloorHoleDlg::IsDestroy()
|
|||
|
|
{
|
|||
|
|
return m_bDestroy;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CFloorHoleDlg::OnSelchangeTabFloorBase(NMHDR* pNMHDR, LRESULT* pResult)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your control notification handler code here
|
|||
|
|
UpdateData(TRUE);
|
|||
|
|
m_nType = m_wndTabLinkType.GetCurSel();
|
|||
|
|
ModifyWndRect();
|
|||
|
|
*pResult = 0;
|
|||
|
|
acedGetAcadDwgView()->SetFocus();
|
|||
|
|
}
|