Files
envi-code/SourceCode/Code2026/Pool3dCmd/CRDTDlg.cpp
T
2026-09-28 15:28:50 +08:00

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);
}
}
}
}