www.mxdraw.com
内容索引主面
前一个向上下一个
MxDraw::SaveDwg 方法

保存dwg文件

C++
static BOOL SaveDwg(MXDRAWOCXHANDLE hOcx, LPCTSTR pszDwgFilePath, LPCTSTR wszPassword = NULL, McDb::McDbDwgVersion version = McDb::kDHL_1015, byte** ppRetData = NULL, long* pRetDataLength = NULL);
参数 
说明 
MXDRAWOCXHANDLE hOcx 
控件句柄 
LPCTSTR pszDwgFilePath 
保存的DWG文件绝对路径,如果扩展名为DXF文件,则保存为DXF文件., 扩展名为DWF文件,则保存为DWF文件, 扩展名为PDF文件,则保存为PDF文件, 扩展名为JPG文件,则保存为JPG文件, 扩展名为BMP文件,则保存为BMP文件, 
LPCTSTR wszPassword = NULL 
DWG文件的密码,kDHL_1024版式本可以设置密码 

成功返回TRUE

保存dwg文件 例如:sampleedit.sln中的保存dwg文件例程代码

    void CTestDlg::OnBnClickedSavedwgButton()
    {
        // TODO: 在此添加控件通知处理程序代码
        CFileDialog openDlg(FALSE,_T("dwg"),NULL,
            OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
            _T("dwg(*.dwg) | *.dwg|dxf(*.dxf) | *.dxf||"),this);

        CString sAppPath = CTestDlgApp::GetAppPath();

        CString sInitialDir = AfxGetApp()->GetProfileString(_T("MxDWGTestDlg"),_T("SaveDwgDir"),sAppPath );

        CString sFileName;
        openDlg.m_ofn.lpstrInitialDir= sInitialDir; //设置打开文件的缺省路径

        if(openDlg.DoModal() == IDOK)
        {
            sFileName = openDlg.GetPathName();
        }
        else
        {
            return;
        }

        int iFindPos = sFileName.ReverseFind('\');
        if(iFindPos >= 0)
        {
            CString sPath = sFileName.Left(iFindPos + 1);
            AfxGetApp()->WriteProfileString(_T("MxDWGTestDlg"),_T("SaveDwgDir"),sPath);
        }

        if(!MxDraw::SaveDwg(m_hDrawOcx,sFileName) )
        {
            CString sError;
            if(MxDraw::GetLastError().IsEmpty() )
                sError = _T("保存dwg文件失败!");
            else
                sError.Format(_T("保存dwg文件失败!原因为:%s"),MxDraw::GetLastError());
            AfxMessageBox(sError);
        }
        else
        {
            AfxMessageBox(_T("保存成功"));
        }
    }

DWG文件的版本,默认值kDHL_1015是AutoCAD2002格式 vAC15 = kDHL_1015, // R15 (2000) release 取值:23 vAC18 = kDHL_1800, // R18 (2004) release 取值:25 vAC21 = kDHL_1021, // R21 (2007) release 取值:27 vAC24 = kDHL_1024, // R24 (2010) release 取值:29 ppRetData - 把数据保存到内存中,返回的数据需要free函数释放。 pRetDataLength - 返回数据的长度

Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!