1000 lines
29 KiB
C++
1000 lines
29 KiB
C++
// InsBlockDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
//#include <cbclass.h>
|
|
|
|
#include "InsBlockDlg.h"
|
|
#include "BlockNum.h"
|
|
#include "ZoomDlg.h"
|
|
#include "SelectBlkDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//#ifdef _WIN64
|
|
#include"TGAs.h"
|
|
//#endif
|
|
|
|
BEGIN_MESSAGE_MAP(CValveTooBar, XToolBarCtrl)
|
|
//{{AFX_MSG_MAP(CValveTooBar)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
|
|
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BOOL CValveTooBar::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);
|
|
|
|
// if there is a top level routing frame then let it handle the message
|
|
if (GetRoutingFrame() != NULL) return FALSE;
|
|
|
|
// to be thorough we will need to handle UNICODE versions of the message also !!
|
|
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
|
|
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
|
|
//TCHAR szFullText[512];
|
|
CString strTipText;
|
|
//消除64位编译警告
|
|
//UINT nID = pNMHDR->idFrom;
|
|
UINT_PTR nID = pNMHDR->idFrom;
|
|
|
|
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
|
|
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
|
|
{
|
|
// idFrom is actually the HWND of the tool
|
|
nID = ::GetDlgCtrlID((HWND)nID);
|
|
if (nID != IDR_TOOLBAR_INSBLK && nID != IDR_TOOLBAR_SANITARY
|
|
&& nID != IDR_TOOLBAR_ATTACHMENT && nID != IDR_TOOLBAR_VALVE)
|
|
{
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
if (nID != 0) // will be zero on a separator
|
|
{
|
|
{
|
|
CAcModuleResourceOverride vTmp;
|
|
//消除64位编译警告
|
|
//strTipText.LoadString(nID); //=szFullText;
|
|
strTipText.LoadString((UINT)nID); //=szFullText;
|
|
}
|
|
|
|
#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;
|
|
|
|
// bring the tooltip window above other popup windows
|
|
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,SWP_NOACTIVATE|
|
|
SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
#define IDC_USER_COMBOX_TYPE 1089
|
|
static UINT indicators[] = {ID_SEPARATOR};
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CInsBlockDlg, CModelessDialog)
|
|
|
|
CInsBlockDlg::CInsBlockDlg(const TCHAR* szTKName, int iOpenMode, CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CInsBlockDlg::IDD, pParent)
|
|
{
|
|
CString csTKName = szTKName;
|
|
m_csTKName = csTKName;
|
|
m_csTKAllName = csTKName + _T(".tk");
|
|
|
|
m_csCurBlkName = _T("");
|
|
m_csCurDwbName = _T("");
|
|
m_csCurRecord = _T("");
|
|
m_bNeedRotate = FALSE;
|
|
m_bNeedFlange = FALSE;
|
|
m_bIsPlan = TRUE;
|
|
|
|
m_nIndex = 0;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_iRowNum = 4;
|
|
m_iColNum = 6;
|
|
|
|
|
|
// m_bInit = FALSE;
|
|
m_bSuccess = TRUE;
|
|
m_iMode = 0;
|
|
|
|
if(iOpenMode == 0){
|
|
m_csPlanType = _T("平面阀门");
|
|
m_csSysType = _T("系统阀门");
|
|
}
|
|
else if(iOpenMode == 1){
|
|
m_csPlanType = _T("平面附件");
|
|
m_csSysType = _T("系统附件");
|
|
}
|
|
else if(iOpenMode == 3)
|
|
m_csPlanType = _T("大小便器");
|
|
else if(iOpenMode == 4)
|
|
m_csPlanType = _T("给水附件");
|
|
else if(iOpenMode == 5){
|
|
m_csPlanType = _T("平面仪表");
|
|
m_csSysType = _T("系统仪表");
|
|
}
|
|
else if(iOpenMode == 6)
|
|
m_csPlanType = _T("双线阀门");
|
|
|
|
}
|
|
|
|
|
|
void CInsBlockDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CModelessDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CInsBlockDlg)
|
|
DDX_Control(pDX, IDC_STATIC_SLIDE, m_staticSlide);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CInsBlockDlg, CModelessDialog)
|
|
//{{AFX_MSG_MAP(CInsBlockDlg)
|
|
ON_COMMAND(ID_BUTTON_PGUP, OnButtonPgup)
|
|
ON_COMMAND(ID_BUTTON_PGDOWN, OnButtonPgdown)
|
|
ON_COMMAND(ID_BUTTON_ROTATE, OnButtonRotate)
|
|
ON_COMMAND(ID_BUTTON_FL_VALVE, OnButtonFlange)
|
|
ON_COMMAND(ID_BUTTON_PLAN, OnButtonPlan)
|
|
ON_COMMAND(ID_BUTTON_SYS, OnButtonSys)
|
|
ON_COMMAND(ID_BUTTON_SAN1, OnButtonSan1)
|
|
ON_COMMAND(ID_BUTTON_SAN2, OnButtonSan2)
|
|
ON_COMMAND(ID_BUTTON_SAN3, OnButtonSan3)
|
|
ON_COMMAND(ID_BUTTON_FEED, OnButtonFeed)
|
|
ON_COMMAND(ID_BUTTON_DRAIN, OnButtonDrain)
|
|
ON_COMMAND(ID_BUTTON_OTHER, OnButtonOther)
|
|
ON_COMMAND(ID_BUTTON_FIRE, OnButtonFire)
|
|
ON_COMMAND(ID_BUTTON_INSEQ, OnButtonIns)
|
|
ON_COMMAND(ID_BUTTON_REPLACE_EQ, OnButtonReplace)
|
|
ON_COMMAND(ID_BUTTON_INSVALVE, OnButtonIns)
|
|
ON_COMMAND(ID_BUTTON_REPLACE_VALVE, OnButtonReplace)
|
|
ON_COMMAND(ID_BUTTON_NEW_VALVE, OnButtonNew)
|
|
ON_COMMAND(ID_BUTTON_NEW_ATTACH, OnButtonNew)
|
|
ON_COMMAND(ID_BUTTON_NEW_BLK, OnButtonNew)
|
|
ON_COMMAND(ID_BUTTON_BLKMAN, OnButtonBlkMan)
|
|
ON_COMMAND(ID_BUTTON_SETTING, OnButtonSetting)
|
|
ON_COMMAND(ID_BLK_EXCHANGE, OnExchange)
|
|
ON_COMMAND(ID_BLK_LAYOUT1X1, OnLayout11)
|
|
ON_COMMAND(ID_BLK_LAYOUT2X2, OnLayout22)
|
|
ON_COMMAND(ID_BLK_LAYOUT3X3, OnLayout33)
|
|
ON_COMMAND(ID_BLK_LAYOUT4X4, OnLayout44)
|
|
ON_COMMAND(ID_BLK_LAYOUT4X6, OnLayout46)
|
|
ON_COMMAND(ID_BLK_LAYOUT, OnLayout)
|
|
ON_COMMAND(ID_BUTTON_ZOOM, OnButtonZoom)
|
|
ON_WM_CLOSE()
|
|
ON_WM_SIZE()
|
|
ON_WM_LBUTTONUP()
|
|
ON_WM_MOUSEMOVE()
|
|
ON_WM_PAINT()
|
|
ON_WM_CONTEXTMENU()
|
|
ON_CBN_SELCHANGE(IDC_USER_COMBOX_TYPE, OnSelchangeComboType)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CInsBlockDlg message handlers
|
|
|
|
|
|
|
|
BOOL CInsBlockDlg::OnInitDialog()
|
|
{
|
|
CModelessDialog::OnInitDialog();
|
|
|
|
CTemporaryResourceOverride vTmp;
|
|
if(m_csTKName == _T("VALVE") && m_csPlanType != _T("双线阀门")){
|
|
int ButtonID[]={ID_BUTTON_PGUP, ID_BUTTON_PGDOWN, 0,
|
|
ID_BUTTON_INSVALVE, ID_BUTTON_REPLACE_VALVE, ID_BUTTON_NEW_VALVE, 0,
|
|
ID_BUTTON_PLAN, ID_BUTTON_SYS, 0,};
|
|
// ID_BUTTON_ROTATE, ID_BUTTON_ZOOM,ID_BUTTON_BLKMAN,};
|
|
m_ToolBar.InitToolBar(ButtonID, 10, IDR_TOOLBAR_INSBLK, this);
|
|
m_ToolBar.SetStyle(ID_BUTTON_INSVALVE, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_REPLACE_VALVE, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_NEW_VALVE, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_PLAN, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_SYS, TBSTYLE_CHECKGROUP);
|
|
//m_ToolBar.SetStyle(ID_BUTTON_ROTATE, TBSTYLE_CHECK);
|
|
|
|
m_ToolBar.CheckButton(ID_BUTTON_INSVALVE, 1);
|
|
|
|
m_com.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST
|
|
|CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP,
|
|
CRect(190,0,260,250), &m_ToolBar, IDC_USER_COMBOX_TYPE);
|
|
m_com.AddString(_T("阀门"));
|
|
m_com.AddString(_T("附件"));
|
|
m_com.AddString(_T("仪表"));
|
|
if(m_csPlanType == _T("平面阀门"))
|
|
m_com.SetCurSel(0);
|
|
else if(m_csPlanType == _T("平面附件"))
|
|
m_com.SetCurSel(1);
|
|
else if(m_csPlanType == _T("平面仪表"))
|
|
m_com.SetCurSel(2);
|
|
|
|
}
|
|
else if(m_csTKName == _T("Sanitary")){
|
|
int ButtonID[]={ID_BUTTON_PGUP, ID_BUTTON_PGDOWN, 0,
|
|
ID_BUTTON_SAN1, ID_BUTTON_SAN2, ID_BUTTON_SAN3, 0,
|
|
ID_BUTTON_NEW_BLK, ID_BUTTON_ZOOM,ID_BUTTON_BLKMAN,};
|
|
m_ToolBar.InitToolBar(ButtonID, 10, IDR_TOOLBAR_SANITARY, this);
|
|
m_ToolBar.SetStyle(ID_BUTTON_SAN1, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_SAN2, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_SAN3, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.CheckButton(ID_BUTTON_SAN1, 1);
|
|
}
|
|
else if(m_csTKName == _T("ATTACHMENT")){
|
|
int ButtonID[]={ID_BUTTON_PGUP, ID_BUTTON_PGDOWN, 0,
|
|
ID_BUTTON_INSEQ, ID_BUTTON_REPLACE_EQ, ID_BUTTON_NEW_ATTACH, 0, ID_BUTTON_ZOOM,ID_BUTTON_BLKMAN,};
|
|
m_ToolBar.InitToolBar(ButtonID, 9, IDR_TOOLBAR_ATTACHMENT, this);
|
|
// m_ToolBar.SetStyle(ID_BUTTON_FEED, TBSTYLE_CHECKGROUP);
|
|
// m_ToolBar.SetStyle(ID_BUTTON_DRAIN, TBSTYLE_CHECKGROUP);
|
|
// m_ToolBar.SetStyle(ID_BUTTON_FIRE, TBSTYLE_CHECKGROUP);
|
|
// m_ToolBar.SetStyle(ID_BUTTON_OTHER, TBSTYLE_CHECKGROUP);
|
|
// m_ToolBar.CheckButton(ID_BUTTON_FEED, 1);
|
|
m_com.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST
|
|
|CBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP,
|
|
CRect(175,0,265,250), &m_ToolBar, IDC_USER_COMBOX_TYPE);
|
|
m_com.AddString(_T("给水附件"));
|
|
m_com.AddString(_T("排水附件"));
|
|
m_com.AddString(_T("消防附件"));
|
|
m_com.AddString(_T("其它设备"));
|
|
m_com.AddString(_T("水处理设备"));
|
|
m_com.AddString(_T("水处理构筑物"));
|
|
|
|
|
|
m_ToolBar.SetStyle(ID_BUTTON_INSEQ, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_REPLACE_EQ, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.SetStyle(ID_BUTTON_NEW_VALVE, TBSTYLE_CHECKGROUP);
|
|
m_ToolBar.CheckButton(ID_BUTTON_INSEQ, 1);
|
|
}
|
|
else if(m_csTKName == _T("VALVE") && m_csPlanType == _T("双线阀门")){
|
|
int ButtonID[]={ID_BUTTON_PGUP, ID_BUTTON_PGDOWN, 0,
|
|
ID_BUTTON_FL_VALVE,ID_BUTTON_NEW_VALVE, ID_BUTTON_ZOOM,ID_BUTTON_BLKMAN,ID_BUTTON_SETTING};
|
|
m_ToolBar.InitToolBar(ButtonID, 8, IDR_TOOLBAR_VALVE, this);
|
|
m_ToolBar.SetStyle(ID_BUTTON_FL_VALVE, TBSTYLE_CHECK);
|
|
}
|
|
|
|
UpdateDlgData(TRUE);
|
|
if(m_bNeedRotate)
|
|
m_ToolBar.CheckButton(ID_BUTTON_ROTATE, 1);
|
|
if(m_csTKName == _T("Sanitary")){
|
|
if(m_csCurType == _T("大小便器"))
|
|
m_ToolBar.CheckButton(ID_BUTTON_SAN1, 1);
|
|
else if(m_csCurType == _T("洗脸盆"))
|
|
m_ToolBar.CheckButton(ID_BUTTON_SAN2, 1);
|
|
else if(m_csCurType == _T("浴缸"))
|
|
m_ToolBar.CheckButton(ID_BUTTON_SAN3, 1);
|
|
}
|
|
else if(m_csTKName == _T("VALVE") && m_csPlanType != _T("双线阀门")){
|
|
if(m_bIsPlan)
|
|
m_ToolBar.CheckButton(ID_BUTTON_PLAN, 1);
|
|
else
|
|
m_ToolBar.CheckButton(ID_BUTTON_SYS, 1);
|
|
}
|
|
else if(m_csTKName == _T("ATTACHMENT")){
|
|
if(m_csCurType == _T("给水附件"))
|
|
m_com.SetCurSel(0);
|
|
else if(m_csCurType == _T("排水附件"))
|
|
m_com.SetCurSel(1);
|
|
else if(m_csCurType == _T("消防附件"))
|
|
m_com.SetCurSel(2);
|
|
else if(m_csCurType == _T("其它设备"))
|
|
m_com.SetCurSel(3);
|
|
else if(m_csCurType == _T("水处理设备"))
|
|
m_com.SetCurSel(4);
|
|
else if(m_csCurType == _T("水处理构筑物"))
|
|
m_com.SetCurSel(5);
|
|
|
|
// if(m_csCurType == _T("给水附件"))
|
|
// m_ToolBar.CheckButton(ID_BUTTON_FEED, 1);
|
|
// else if(m_csCurType == _T("排水附件"))
|
|
// m_ToolBar.CheckButton(ID_BUTTON_DRAIN, 1);
|
|
// else if(m_csCurType == _T("消防附件"))
|
|
// m_ToolBar.CheckButton(ID_BUTTON_FIRE, 1);
|
|
// else if(m_csCurType == _T("其它设备"))
|
|
// m_ToolBar.CheckButton(ID_BUTTON_OTHER, 1);
|
|
}
|
|
|
|
m_Status.CreateEx(this,0,WS_CHILD | WS_VISIBLE | CBRS_BOTTOM);
|
|
m_Status.SetIndicators(indicators,1);
|
|
m_Status.ShowWindow(SW_SHOW);
|
|
|
|
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
|
|
|
|
|
|
LoadCurBlk();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CInsBlockDlg::OnClose()
|
|
{
|
|
CModelessDialog::OnClose();
|
|
acedPostCommand(_T("\33\33"));
|
|
}
|
|
|
|
|
|
void CInsBlockDlg::PostNcDestroy()
|
|
{
|
|
UpdateDlgData(FALSE);
|
|
CModelessDialog::PostNcDestroy();
|
|
}
|
|
|
|
void CInsBlockDlg::OnSize(UINT nType, int cx, int cy)
|
|
{
|
|
CModelessDialog::OnSize(nType, cx, cy);
|
|
CWnd *pWnd = GetDlgItem(IDC_STATIC_SLIDE);
|
|
if(pWnd == NULL || !IsWindow(pWnd->m_hWnd))
|
|
return;
|
|
CRect rc;
|
|
GetClientRect(&rc);
|
|
rc.DeflateRect(6, 28);
|
|
pWnd->MoveWindow(rc);
|
|
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
|
|
}
|
|
|
|
|
|
void CInsBlockDlg::OnLButtonUp(UINT nFlags, CPoint point)
|
|
{
|
|
if(point.x == -1 && point.y == -1){ //鼠标拖拽
|
|
m_nIndex = m_staticSlide.m_iIndex;
|
|
m_nPage = m_staticSlide.m_iPage;
|
|
m_nCurPos = m_staticSlide.m_iCurPos;
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
}
|
|
CModelessDialog::OnLButtonUp(nFlags, point);
|
|
}
|
|
|
|
void CInsBlockDlg::OnMouseMove(UINT nFlags, CPoint point)
|
|
{
|
|
XString xsTKName, xsRocord;
|
|
SplitSlbName(m_staticSlide.m_csMoveRecord, xsTKName, xsRocord);
|
|
TCHAR szDrive[_MAX_DRIVE]=_T(""), szDir[_MAX_DIR]=_T(""), szFile[_MAX_FNAME]=_T(""), szExt[_MAX_EXT]=_T("");
|
|
_tsplitpath(xsTKName, szDrive, szDir, szFile, szExt);
|
|
xsTKName = szFile;
|
|
CString csSysOrUser = szDir;
|
|
if(csSysOrUser.Find(_T("DWBUSER")) > -1 || csSysOrUser.Find(_T("dwbuser")) > -1)
|
|
csSysOrUser = _T("用户库");
|
|
else
|
|
csSysOrUser = _T("系统库");
|
|
CString csPrompt;
|
|
csPrompt.Format(_T("%s (%s%s %s)"), m_staticSlide.m_csMoveDesName, csSysOrUser, xsTKName, xsRocord);
|
|
m_Status.SetPaneText(0, csPrompt);
|
|
m_Status.UpdateWindow();
|
|
CModelessDialog::OnMouseMove(nFlags, point);
|
|
}
|
|
|
|
void CInsBlockDlg::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
}
|
|
|
|
void CInsBlockDlg::OnContextMenu(CWnd* pWnd, CPoint point)
|
|
{
|
|
CMenu menu;
|
|
menu.LoadMenu(IDR_INSBLK_MENU);
|
|
if(IsInRect(IDC_STATIC_SLIDE, point)) {
|
|
CMenu *pSubMenu = menu.GetSubMenu(0);
|
|
if(pSubMenu){
|
|
if(m_nPage == 0)
|
|
pSubMenu->EnableMenuItem(ID_BUTTON_PGUP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
|
else if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
pSubMenu->EnableMenuItem(ID_BUTTON_PGDOWN, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
|
|
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
|
|
point.x, point.y, this, NULL);
|
|
}
|
|
}
|
|
}
|
|
|
|
BOOL CInsBlockDlg::IsInRect(UINT CtrlID, CPoint point)
|
|
{
|
|
CRect rect;
|
|
CWnd *pWnd=GetDlgItem(CtrlID);
|
|
ASSERT(pWnd);
|
|
pWnd->GetWindowRect(rect);
|
|
if(point.x<rect.BottomRight().x && point.y<rect.BottomRight().y && point.x >rect.TopLeft().x && point.y >rect.TopLeft().y)
|
|
return TRUE;
|
|
return FALSE;
|
|
}
|
|
|
|
////////////////////////////////////////// menu command ///////////////////////////////////////////
|
|
|
|
//向后翻页
|
|
void CInsBlockDlg::OnButtonPgup()
|
|
{
|
|
m_staticSlide.OnPgup();
|
|
m_nPage = m_staticSlide.m_iPage;
|
|
if(m_nPage == 0)
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, TRUE);
|
|
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
UpdateWindow();
|
|
}
|
|
|
|
//向前翻页
|
|
void CInsBlockDlg::OnButtonPgdown()
|
|
{
|
|
m_staticSlide.OnPgdown();
|
|
m_nPage = m_staticSlide.m_iPage;
|
|
if(m_nPage == 0)
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, TRUE);
|
|
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
UpdateWindow();
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonPlan()
|
|
{
|
|
if(m_bIsPlan)
|
|
return;
|
|
m_csCurType = m_csPlanType;
|
|
m_bIsPlan = TRUE;
|
|
m_staticSlide.ResetSource(m_csTKName, m_csPlanType, 0, 0, 0);
|
|
m_nPage = m_staticSlide.m_iPage;
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonSys()
|
|
{
|
|
if(!m_bIsPlan)
|
|
return;
|
|
m_bIsPlan = FALSE;
|
|
m_csCurType = m_csSysType;
|
|
m_staticSlide.ResetSource(m_csTKName, m_csSysType, 0, 0, 0);
|
|
m_nPage = m_staticSlide.m_iPage;
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonSan1()
|
|
{
|
|
m_csCurType = _T("大小便器");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("大小便器"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("W "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonSan2()
|
|
{
|
|
m_csCurType = _T("洗脸盆");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("洗脸盆"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("W "), false);
|
|
LoadCurBlk();
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonSan3()
|
|
{
|
|
m_csCurType = _T("浴缸");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("浴缸"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("W "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonFeed()
|
|
{
|
|
m_csCurType = _T("给水附件");
|
|
|
|
m_staticSlide.ResetSource(m_csTKName, _T("给水附件"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonDrain()
|
|
{
|
|
m_csCurType = _T("排水附件");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("排水附件"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonOther()
|
|
{
|
|
m_csCurType = _T("其它设备");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("其它设备"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonFire()
|
|
{
|
|
m_csCurType = _T("消防附件");
|
|
m_staticSlide.ResetSource(m_csTKName, _T("消防附件"), 0, 0, 0);
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::Reset()
|
|
{
|
|
//int page = m_staticSlide.TotalPages() - 1;
|
|
int page = 0;
|
|
if(m_csTKName == _T("VALVE"))
|
|
m_ToolBar.CheckButton(ID_BUTTON_INSVALVE, 1);
|
|
else if(m_csTKName == _T("ATTACHMENT"))
|
|
m_ToolBar.CheckButton(ID_BUTTON_INSEQ, 1);
|
|
|
|
m_staticSlide.ResetSource(m_csTKName, m_csCurType, 0, page, 0);
|
|
if(page == 0)
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
LoadCurBlk();
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonIns()
|
|
{
|
|
if(m_iMode == 0)
|
|
return;
|
|
m_iMode = 0;
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonReplace()
|
|
{
|
|
if(m_iMode == 1)
|
|
return;
|
|
m_iMode = 1;
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonNew()
|
|
{
|
|
if(m_iMode == 2)
|
|
return;
|
|
m_iMode = 2;
|
|
acedGetAcadDwgView()->SetFocus();
|
|
PostCommand(_T("R "), false);
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonSetting()
|
|
{
|
|
CModelessDialog::OnClose();
|
|
acedPostCommand(_T("\33\33"));
|
|
acedPostCommand(_T("fmgg "));
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonBlkMan()
|
|
{
|
|
XString sLibFile, xsTmp;
|
|
CString csTKW;
|
|
if(m_csTKName == _T("Sanitary"))
|
|
csTKW = _T("洁具库.TKW");
|
|
else if(m_csTKName == _T("ATTACHMENT"))
|
|
csTKW = _T("附件库.TKW");
|
|
else if(m_csTKName == _T("VALVE"))
|
|
csTKW = _T("阀门库.TKW");
|
|
sLibFile << g_sDwbPath << csTKW;
|
|
xsTmp = m_staticSlide.m_csCurRecord;
|
|
InvokeTkwMan(sLibFile, FALSE, xsTmp);
|
|
Reset();
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonRotate()
|
|
{
|
|
m_bNeedRotate = !m_bNeedRotate;
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonFlange()
|
|
{
|
|
m_bNeedFlange = !m_bNeedFlange;
|
|
}
|
|
|
|
void CInsBlockDlg::OnLayout11()
|
|
{
|
|
m_iRowNum = 1;
|
|
m_iColNum = 1;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = 1;
|
|
m_staticSlide.m_iColNum = 1;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
|
|
void CInsBlockDlg::OnLayout22()
|
|
{
|
|
m_iRowNum = 2;
|
|
m_iColNum = 2;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = 2;
|
|
m_staticSlide.m_iColNum = 2;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
|
|
void CInsBlockDlg::OnLayout33()
|
|
{
|
|
m_iRowNum = 3;
|
|
m_iColNum = 3;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = 3;
|
|
m_staticSlide.m_iColNum = 3;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
|
|
void CInsBlockDlg::OnLayout44()
|
|
{
|
|
m_iRowNum = 4;
|
|
m_iColNum = 4;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = 4;
|
|
m_staticSlide.m_iColNum = 4;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
|
|
void CInsBlockDlg::OnLayout46()
|
|
{
|
|
m_iRowNum = 4;
|
|
m_iColNum = 6;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = 4;
|
|
m_staticSlide.m_iColNum = 6;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
|
|
|
|
void CInsBlockDlg::OnLayout()
|
|
{
|
|
CBlockNum diaBlkNum(m_iRowNum, m_iColNum);
|
|
if(diaBlkNum.DoModal() == IDOK){
|
|
m_iRowNum = diaBlkNum.m_iRow;
|
|
m_iColNum = diaBlkNum.m_iCol;
|
|
m_nPage = 0;
|
|
m_nCurPos = 0;
|
|
m_staticSlide.m_iRowNum = m_iRowNum;
|
|
m_staticSlide.m_iColNum = m_iColNum;
|
|
m_staticSlide.m_iPage = 0;
|
|
m_staticSlide.m_iCurPos = 0;
|
|
Invalidate(TRUE);
|
|
UpdateWindow();
|
|
}
|
|
}
|
|
|
|
void CInsBlockDlg::OnButtonZoom()
|
|
{
|
|
if(m_staticSlide.m_csCurRecord == _T(""))
|
|
return;
|
|
CTemporaryResourceOverride thisResource;
|
|
CZoomDlg zDlg;
|
|
zDlg.m_strPathSlideName = m_staticSlide.m_csCurRecord;
|
|
zDlg.m_strDiscript = m_staticSlide.m_csCurDesName;
|
|
INT_PTR iTemp=zDlg.DoModal();
|
|
if(iTemp == -1 || iTemp == IDABORT) return;
|
|
}
|
|
|
|
void CInsBlockDlg::OnExchange()
|
|
{
|
|
CTemporaryResourceOverride vTemp;
|
|
CSelectBlkDlg dlg;
|
|
dlg.m_staticSlide.m_bOnlyCurType = TRUE;
|
|
dlg.m_staticSlide.m_iRowNum = 4;
|
|
dlg.m_staticSlide.m_iColNum = 4;
|
|
dlg.m_staticSlide.m_csCurRecord = m_staticSlide.m_csCurRecord;
|
|
dlg.m_csTkName = m_csTKName;
|
|
dlg.m_csType = m_csCurType;
|
|
CRect rect = m_staticSlide.m_rectSel;
|
|
m_staticSlide.ClientToScreen(rect);
|
|
dlg.m_ptBase = rect.BottomRight();
|
|
if(dlg.DoModal() == IDOK){
|
|
//CString csTkName2 = m_staticSlide.m_csTKAllName; cet 2012.4.18 del
|
|
XString xsTKName1, xsTKName2, xsRocord1, xsRocord2, xsItem1, xsItem2;
|
|
SplitSlbName(m_staticSlide.m_csCurRecord, xsTKName1, xsRocord1);
|
|
SplitSlbName(dlg.m_staticSlide.m_csCurRecord, xsTKName2, xsRocord2);
|
|
//xsItem1 = (const TCHAR*)GetBlkDesName((const TCHAR*)xsRocord1, csTkName); cet 2012.4.18 del
|
|
//xsItem2 = (const TCHAR*)GetBlkDesName((const TCHAR*)xsRocord2, csTkName); cet 2012.4.18 del
|
|
|
|
if(xsRocord1 == xsRocord2)
|
|
return;
|
|
// cet 2012.4.18 add
|
|
if (xsTKName1 != xsTKName2)
|
|
{
|
|
MessageBox(_T("不同类型无法进行位置交换!"), _T("警告"), MB_OK);
|
|
return;
|
|
}
|
|
if(MessageBox(_T("您是否真的确定要与该图块交换位置?"),_T("提醒"),MB_OKCANCEL|MB_ICONQUESTION) != IDOK)
|
|
return;
|
|
|
|
// cet 2012.4.18 add
|
|
CString csTkName, csTemp = xsTKName1.cs(), csTemp2 = m_staticSlide.m_csTKAllName;
|
|
int nIndex = csTemp.ReverseFind(_T('\\'));
|
|
int nIndex2 = csTemp2.ReverseFind(_T('\\'));
|
|
if (nIndex == -1 || nIndex2 == -1)
|
|
{
|
|
return;
|
|
}
|
|
csTkName = csTemp2.Left(nIndex2 + 1) + csTemp.Right(csTemp.GetLength() - nIndex - 1);
|
|
csTkName += _T(".tk");
|
|
xsItem1 = (const TCHAR*)GetBlkDesName((const TCHAR*)xsRocord1, csTkName);
|
|
xsItem2 = (const TCHAR*)GetBlkDesName((const TCHAR*)xsRocord2, csTkName);
|
|
|
|
int flag(0);
|
|
{
|
|
CodeBase db;
|
|
XDbfTable *pTable = db.Open(csTkName);
|
|
if(!pTable) return;
|
|
CString csItem, csDrawing;
|
|
for(pTable->MoveFirst();!pTable->IsEOF();pTable->MoveNext()){
|
|
GET_FIELD(pTable, _T("item"), csItem);
|
|
GET_FIELD(pTable, _T("Drawing"), csDrawing);
|
|
if(csDrawing == xsRocord1){
|
|
SET_FIELD(pTable, _T("Drawing"), xsRocord2);
|
|
SET_FIELD(pTable, _T("item"), xsItem2);
|
|
flag++;
|
|
}
|
|
if(csDrawing == xsRocord2){
|
|
SET_FIELD(pTable, _T("Drawing"), xsRocord1);
|
|
SET_FIELD(pTable, _T("item"), xsItem1);
|
|
flag++;
|
|
}
|
|
if(flag == 2)
|
|
break;
|
|
}
|
|
}//CodeBase 结束
|
|
if(flag == 2){
|
|
m_staticSlide.ResetSource(m_csTKName, m_csCurType, m_staticSlide.m_iIndex, m_staticSlide.m_iPage, m_staticSlide.m_iCurPos);
|
|
LoadCurBlk();
|
|
acedGetAcadDwgView()->SetFocus();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
////////////////////////////////////////// function ///////////////////////////////////////////
|
|
|
|
|
|
void CInsBlockDlg::UpdateDlgData(BOOL bIsRead)
|
|
{
|
|
CString csRegTmp;
|
|
if(m_csTKName == _T("Sanitary"))
|
|
csRegTmp = _T("Sanitary");
|
|
else if(m_csTKName == _T("ATTACHMENT"))
|
|
csRegTmp = _T("Attachment");
|
|
else if(m_csTKName == _T("VALVE")){
|
|
if(m_csPlanType == _T("平面阀门"))
|
|
csRegTmp = _T("DlgValveInfo");
|
|
else if(m_csPlanType == _T("平面附件"))
|
|
csRegTmp = _T("DlgAttachInfo");
|
|
else if(m_csPlanType == _T("双线阀门"))
|
|
csRegTmp = _T("DlgValveDouble");
|
|
}
|
|
|
|
CRegProperty regProp(GetRegLocation(), csRegTmp);
|
|
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
|
if(bIsRead){
|
|
m_csCurType = m_csPlanType;
|
|
if(_tcsicmp(m_csTKName, _T("TWTSYS")) != 0){
|
|
regProp.GetValue(_T("RowNum"), m_iRowNum);
|
|
regProp.GetValue(_T("ColNum"), m_iColNum);
|
|
regProp.GetValue(_T("curPos"), m_nCurPos);
|
|
regProp.GetValue(_T("index"), m_nIndex);
|
|
regProp.GetValue(_T("type"), m_csCurType);
|
|
regProp.GetValue(_T("page"), m_nPage);
|
|
regProp.GetValue(_T("IsPlanLib"), m_bIsPlan);
|
|
}
|
|
m_staticSlide.m_iColNum = m_iColNum;
|
|
m_staticSlide.m_iRowNum = m_iRowNum;
|
|
m_staticSlide.m_iIndex = m_nIndex;
|
|
m_staticSlide.m_iPage = m_nPage;
|
|
m_staticSlide.m_iCurPos = m_nCurPos;
|
|
m_staticSlide.ResetSource(m_csTKName, m_csCurType, m_nIndex, m_nPage, m_nCurPos);
|
|
if(m_nPage == 0)
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGUP, TRUE);
|
|
if(m_staticSlide.TotalPages() == (m_nPage + 1))
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, FALSE);
|
|
else
|
|
m_ToolBar.EnableButton(ID_BUTTON_PGDOWN, TRUE);
|
|
|
|
if(m_csTKName == _T("VALVE") && m_csPlanType != _T("双线阀门")){
|
|
if(m_bIsPlan)
|
|
m_ToolBar.CheckButton(ID_BUTTON_PLAN, 1);
|
|
else
|
|
m_ToolBar.CheckButton(ID_BUTTON_SYS, 1);
|
|
}
|
|
|
|
}
|
|
else if(_tcsicmp(m_csTKName, _T("TWTSYS")) != 0){
|
|
|
|
if(!m_bSuccess){
|
|
m_iRowNum = 4;
|
|
m_iColNum = 6;
|
|
m_nCurPos = 0;
|
|
m_nIndex = 0;
|
|
m_nPage = 0;
|
|
}
|
|
|
|
regProp.SetValue(_T("RowNum"), m_iRowNum);
|
|
regProp.SetValue(_T("ColNum"), m_iColNum);
|
|
regProp.SetValue(_T("curPos"), m_nCurPos);
|
|
regProp.SetValue(_T("index"), m_nIndex);
|
|
regProp.SetValue(_T("page"), m_nPage);
|
|
regProp.SetValue(_T("IsPlanLib"), m_bIsPlan);
|
|
regProp.SetValue(_T("type"), m_csCurType);
|
|
}
|
|
|
|
}
|
|
|
|
BOOL CInsBlockDlg::LoadCurBlk()
|
|
{
|
|
// AcDbDatabase *dwg=acdbCurDwg(); //沈睿 removed 2006-1-16 对象的方法好像有些问题
|
|
// AcAxDocLock docLock(dwg);
|
|
// VERIFY(docLock.lockStatus() == Acad::eOk);
|
|
XString xsBlkName;
|
|
acDocManager->lockDocument(curDoc(),AcAp::kWrite,NULL,NULL,true);
|
|
if(LoadDwbBlock(m_staticSlide.m_csCurRecord, xsBlkName) != RTNORM) {
|
|
acDocManager->unlockDocument(curDoc());
|
|
MessageBox(_T("加载图块失败!"));
|
|
m_bSuccess = FALSE;
|
|
return FALSE;
|
|
}
|
|
acDocManager->unlockDocument(curDoc());
|
|
m_csCurBlkName = (const TCHAR*)xsBlkName;
|
|
g_csInsBlkName = m_csCurBlkName;
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
void CInsBlockDlg::OnSelchangeComboType()
|
|
{
|
|
UpdateDlgData(FALSE);
|
|
CString csSel;
|
|
int iSel = m_com.GetCurSel();
|
|
CString csType;
|
|
m_com.GetLBText(iSel, csType);
|
|
|
|
if(m_csTKName == _T("VALVE") && m_csPlanType != _T("双线阀门")){
|
|
if(csType == _T("阀门")){
|
|
m_csPlanType = _T("平面阀门");
|
|
m_csSysType = _T("系统阀门");
|
|
}
|
|
else if(csType == _T("仪表")){
|
|
m_csPlanType = _T("平面仪表");
|
|
m_csSysType = _T("系统仪表");
|
|
}
|
|
else if(csType == _T("附件")){
|
|
m_csPlanType = _T("平面附件");
|
|
m_csSysType = _T("系统附件");
|
|
}
|
|
|
|
}
|
|
else if(m_csTKName == _T("ATTACHMENT"))
|
|
{
|
|
if(csType == _T("给水附件"))
|
|
m_csCurType = _T("给水附件");
|
|
else if(csType == _T("排水附件"))
|
|
m_csCurType = _T("排水附件");
|
|
else if(csType == _T("消防附件"))
|
|
m_csCurType = _T("消防附件");
|
|
else if(csType == _T("其它设备"))
|
|
m_csCurType = _T("其它设备");
|
|
else if(csType == _T("水处理设备"))
|
|
m_csCurType = _T("水处理设备");
|
|
else if(csType == _T("水处理构筑物"))
|
|
m_csCurType = _T("水处理构筑物");
|
|
CRegProperty regProp(GetRegLocation(), _T("Attachment"));
|
|
regProp.SetTopRootKey(HKEY_CURRENT_USER);
|
|
regProp.SetValue(_T("type"), m_csCurType);
|
|
}
|
|
|
|
UpdateDlgData(TRUE);
|
|
|
|
LoadCurBlk();
|
|
}
|
|
|