203 lines
5.4 KiB
C++
203 lines
5.4 KiB
C++
// BlkManReplaceOption.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "resource.h"
|
|
#include "BlkManReplaceOption.h"
|
|
#include "BlockManDlg.h"
|
|
#include "TKWorkspace.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CBlkManReplaceOption dialog
|
|
static int g_nUseDialog=0;
|
|
|
|
int CBlkManReplaceOption::m_nFixScale = 1;
|
|
int CBlkManReplaceOption::m_nOneByOne = 0;
|
|
|
|
CBlkManReplaceOption::CBlkManReplaceOption(CWnd* pParent /*=NULL*/)
|
|
: CModelessDialog(CBlkManReplaceOption::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CBlkManReplaceOption)
|
|
//}}AFX_DATA_INIT
|
|
m_stkwfile = _T("");
|
|
m_sCurRecord = _T("");
|
|
m_stkfile = _T("");
|
|
m_nUseOtherBlkToRepl=0;
|
|
m_bUseJpg=FALSE;
|
|
}
|
|
CBlkManReplaceOption::CBlkManReplaceOption(CString tkwfile,CString tkfile,CString curRecord,CWnd* pParent)
|
|
: CModelessDialog(CBlkManReplaceOption::IDD, pParent)
|
|
{
|
|
m_stkwfile = tkwfile;
|
|
m_sCurRecord = curRecord;
|
|
m_stkfile = tkfile;
|
|
m_nUseOtherBlkToRepl=0;
|
|
m_bUseJpg=FALSE;
|
|
}
|
|
|
|
void CBlkManReplaceOption::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CModelessDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CBlkManReplaceOption)
|
|
DDX_Radio(pDX, IDC_RAD_FIXSCALE, m_nFixScale);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CBlkManReplaceOption, CModelessDialog)
|
|
//{{AFX_MSG_MAP(CBlkManReplaceOption)
|
|
ON_WM_CLOSE()
|
|
ON_WM_DESTROY()
|
|
ON_WM_KILLFOCUS()
|
|
ON_BN_CLICKED(IDC_PIC_SLIDE, OnSlide)
|
|
ON_WM_PAINT()
|
|
ON_WM_SETCURSOR()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CBlkManReplaceOption message handlers
|
|
|
|
void CBlkManReplaceOption::OnClose()
|
|
{
|
|
SaveStatus();
|
|
CModelessDialog::OnClose();
|
|
}
|
|
|
|
BOOL CBlkManReplaceOption::OnInitDialog()
|
|
{
|
|
CModelessDialog::OnInitDialog();
|
|
UpdateData(FALSE);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CBlkManReplaceOption::OnDestroy()
|
|
{
|
|
CModelessDialog::OnDestroy();
|
|
SaveStatus();
|
|
}
|
|
|
|
void CBlkManReplaceOption::OnKillFocus(CWnd* pNewWnd)
|
|
{
|
|
CModelessDialog::OnKillFocus(pNewWnd);
|
|
GetStatus();
|
|
}
|
|
|
|
void CBlkManReplaceOption::SaveStatus()
|
|
{
|
|
GetStatus();
|
|
// m_libConfig.SaveTo(m_sIniFile);
|
|
}
|
|
|
|
int CBlkManReplaceOption::GetControlFlag()
|
|
{
|
|
int nControlFlag=0;
|
|
if(m_nFixScale==1) nControlFlag|=LO_FIXDIMENSION_R;
|
|
else if(m_nFixScale==0) nControlFlag&=~LO_FIXDIMENSION_R;
|
|
if(m_nOneByOne==1) nControlFlag|=LO_ALLINSERT_R;
|
|
else if(m_nOneByOne==0) nControlFlag&=~LO_ALLINSERT_R;
|
|
return nControlFlag;
|
|
}
|
|
|
|
void CBlkManReplaceOption::GetStatus()
|
|
{
|
|
UpdateData();
|
|
/*
|
|
if(m_nFixScale==1) m_libConfig.nControlFlag|=LO_FIXDIMENSION_R;
|
|
else if(m_nFixScale==0) m_libConfig.nControlFlag&=~LO_FIXDIMENSION_R;
|
|
if(m_nOneByOne==1) m_libConfig.nControlFlag|=LO_ALLINSERT_R;
|
|
else if(m_nOneByOne==0) m_libConfig.nControlFlag&=~LO_ALLINSERT_R;
|
|
*/
|
|
}
|
|
|
|
extern int g_nUseDialog;//要不要使用下级对话框
|
|
|
|
void CBlkManReplaceOption::DrawSld()
|
|
{
|
|
CWnd *pImageBox=GetDlgItem(IDC_PIC_SLIDE);
|
|
if(pImageBox)
|
|
{
|
|
CDC *pDC=pImageBox->GetDC();
|
|
COLORREF dwBackImage=GetAcadBackColor();
|
|
CRect rc;
|
|
pImageBox->GetClientRect(&rc);
|
|
m_slideDc.InitDC(pDC, rc, dwBackImage);
|
|
if(m_bUseJpg)
|
|
m_slideDc.PaintJpeg(m_sSldFile);
|
|
else
|
|
m_slideDc.PaintSlide(m_sSldFile);
|
|
m_slideDc.SetDC(NULL);
|
|
pImageBox->ReleaseDC(pDC);
|
|
}
|
|
}
|
|
|
|
extern AcDbObjectId GetRepBlkId(const TCHAR* szTKName, const TCHAR* szDrawing, BOOL m_bIsJpgShow);
|
|
|
|
|
|
|
|
|
|
void CBlkManReplaceOption::OnSlide()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
SaveStatus();
|
|
m_nUseOtherBlkToRepl=1;
|
|
g_nUseDialog=1;//更改了要插入的块选项
|
|
//modified by cwk
|
|
CString csSysPath = m_stkwfile;//modified by cwk
|
|
XString xsTKFile = m_stkfile, xsDefaultItem = m_sCurRecord;
|
|
|
|
CTKWorkspace dlg((const TCHAR *)csSysPath, (const TCHAR *)xsTKFile, (const TCHAR *)xsDefaultItem, FALSE);
|
|
if(dlg.DoModal()==IDOK)
|
|
{
|
|
TCHAR szDrive[_MAX_DRIVE]=_T(""), szDir[_MAX_DIR]=_T(""), szFile[_MAX_FNAME]=_T(""), szExt[_MAX_EXT]=_T("");
|
|
_tsplitpath(dlg.m_csLastTKName, szDrive, szDir, szFile, szExt);
|
|
m_sSldFile = XString(_T("%s%s%s"), szDrive, szDir, (const TCHAR *)dlg.m_csRet);
|
|
SplitSlbName(m_sSldFile, xsTKFile, xsDefaultItem);
|
|
m_bUseJpg = dlg.m_treeCtrl.m_bIsJpgShow;
|
|
AcDbDatabase *dwg=acdbCurDwg();
|
|
AcAxDocLock docLock(dwg);
|
|
VERIFY(docLock.lockStatus() == Acad::eOk);
|
|
m_idBlock = GetRepBlkId((const TCHAR *)xsTKFile, (const TCHAR *)xsDefaultItem, m_bUseJpg);
|
|
m_sCurRecord = xsDefaultItem;//add by cwk on 060911
|
|
DrawSld();
|
|
return;
|
|
}
|
|
}
|
|
|
|
void CBlkManReplaceOption::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
// TODO: Add your message handler code here
|
|
DrawSld();
|
|
// Do not call CModelessDialog::OnPaint() for painting messages
|
|
}
|
|
|
|
BOOL CBlkManReplaceOption::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
|
|
{
|
|
// TODO: Add your message handler code here and/or call default
|
|
if(pWnd!=this){
|
|
BOOL bReturn;
|
|
CRect rcSlide;
|
|
CPoint ptCursor; //
|
|
CWnd* pBtn = GetDlgItem( IDC_PIC_SLIDE );
|
|
pBtn->GetWindowRect(rcSlide);
|
|
GetCursorPos( &ptCursor );
|
|
if( rcSlide.PtInRect( ptCursor ) == TRUE ){
|
|
CWinApp* pApp = AfxGetApp();
|
|
HICON hIcon = pApp->LoadCursor(IDC_CUR_SEL);
|
|
SetCursor( hIcon );
|
|
bReturn = TRUE;
|
|
return bReturn;
|
|
}
|
|
}
|
|
return CModelessDialog::OnSetCursor(pWnd, nHitTest, message);
|
|
}
|