667 lines
16 KiB
C++
667 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();
|
||
}
|