110 lines
2.2 KiB
C++
110 lines
2.2 KiB
C++
#include "stdafx.h"
|
|
#include "CRDTDlg.h"
|
|
|
|
IMPLEMENT_DYNAMIC(CCRDTDlg, CDialog)
|
|
|
|
CCRDTDlg::CCRDTDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CCRDTDlg::IDD, pParent)
|
|
, m_sName(_T(""))
|
|
, m_dEl(0)
|
|
, m_sDwgFile(_T(""))
|
|
{
|
|
m_bUpdate = FALSE;
|
|
}
|
|
|
|
CCRDTDlg::~CCRDTDlg()
|
|
{
|
|
}
|
|
|
|
void CCRDTDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_EDIT3, m_sName);
|
|
DDX_Text(pDX, IDC_EDIT2, m_dEl);
|
|
DDX_Text(pDX, IDC_EDIT1, m_sDwgFile);
|
|
DDX_Control(pDX, IDC_EDIT2, m_wndEditEl);
|
|
DDX_Control(pDX, IDC_EDIT3, m_wndEditName);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CCRDTDlg, CDialog)
|
|
ON_BN_CLICKED(IDOK, &CCRDTDlg::OnBnClickedOk)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CCRDTDlg::OnBnClickedButton1)
|
|
END_MESSAGE_MAP()
|
|
|
|
void CCRDTDlg::OnBnClickedOk()
|
|
{
|
|
OnOK();
|
|
}
|
|
|
|
void CCRDTDlg::OnBnClickedButton1()
|
|
{
|
|
const TCHAR *pszFilter = _T("dwg文件 (*.dwg;)|*.dwg|");
|
|
CFileDialog dlg(TRUE, _T("dwg"), NULL,OFN_HIDEREADONLY |
|
|
OFN_OVERWRITEPROMPT | OFN_EXPLORER, pszFilter, NULL);
|
|
|
|
TCHAR strFileName[MAX_PATH] = _T("");
|
|
TCHAR strFileTitle[] = _T("选择单体图纸文件");
|
|
int maxChar = MAX_PATH;
|
|
|
|
dlg.m_ofn.lpstrFile = strFileName;
|
|
dlg.m_ofn.nMaxFile = maxChar;
|
|
dlg.m_ofn.lpstrTitle = strFileTitle;
|
|
|
|
if(dlg.DoModal() != IDOK)
|
|
{
|
|
return;
|
|
}
|
|
m_sDwgFile = dlg.GetPathName();
|
|
m_sName = dlg.GetFileTitle();
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
BOOL CCRDTDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
if (m_bUpdate)
|
|
{
|
|
GetDlgItem(IDC_STATIC_C)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_N)->ShowWindow(SW_HIDE);
|
|
GetDlgItem(IDC_STATIC_M)->ShowWindow(SW_HIDE);
|
|
|
|
m_wndEditEl.ShowWindow(SW_HIDE);
|
|
m_wndEditName.ShowWindow(SW_HIDE);
|
|
|
|
GetDlgItem(IDOK)->SetWindowText(_T("更新"));
|
|
}
|
|
|
|
DwgFileNameFromClipboard();
|
|
|
|
UpdateData(FALSE);
|
|
return TRUE;
|
|
}
|
|
|
|
void CCRDTDlg::DwgFileNameFromClipboard()
|
|
{
|
|
//发送到粘贴板
|
|
OleInitialize(NULL);
|
|
|
|
char* buffer = NULL;
|
|
if( ::OpenClipboard(acedGetAcadFrame()->m_hWnd))
|
|
{
|
|
HANDLE hData = GetClipboardData(CF_TEXT);
|
|
char* buffer = (char*)GlobalLock(hData);
|
|
m_sDwgFile = buffer;
|
|
GlobalUnlock(hData);
|
|
CloseClipboard();
|
|
|
|
int nPos = m_sDwgFile.ReverseFind(_T('\\'));
|
|
if (nPos != -1)
|
|
{
|
|
CString sTemp = m_sDwgFile.Mid(nPos+1);
|
|
nPos = sTemp.ReverseFind(_T('.'));
|
|
if (nPos != -1)
|
|
{
|
|
m_sName = sTemp.Mid(0,nPos);
|
|
}
|
|
}
|
|
}
|
|
} |