明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3747|回复: 5

ObjectARX使用数据库,拼图就这么简单

  [复制链接]
发表于 2014-8-30 23:05:57 | 显示全部楼层 |阅读模式

   int iCount = m_FileList.GetCount();
    if (iCount > 1)
    {
        acedSetStatusBarProgressMeter("正在合拼图纸,等稍等!", 0, iCount);
        for (int i = 0; i < iCount; i++)
        {
            AcDbDatabase pDb = NULL;
            CString fileName;
            m_FileList.GetText(i, fileName);
            pDb.readDwgFile(fileName);
            AcGeMatrix3d m_xform;
            acdbHostApplicationServices()->workingDatabase()->insert(m_xform, &pDb, TRUE);
            acedSetStatusBarProgressMeterPos(i);
        }
        acedRestoreStatusBar();
        acedCommand(RTSTR, TEXT("ZOOM"), RTSTR, TEXT("E"), RTNONE);
    }
    else
    {
         acutPrintf(TEXT("所选文件夹内少于两个dwg文件!"));
    }
    ===========================================================================================
    CString title = TEXT("选择DWG图形文件");
    CString path = TEXT("C:\\");
    struct resbuf *fileName = acutNewRb(RTSTR);
    if (acedGetFileD(title, path, TEXT("dwg;dxf"), 0, fileName) == RTNORM)
    {
        m_FileList.AddString(fileName->resval.rstring);
    }
    acutRelRb(fileName);
    ===========================================================================================
    CString ReturnPach;
    CTextFileUtil::Getbrowse(ReturnPach);
    m_PathEdit.SetWindowText(ReturnPach);

    if (_tcscmp(ReturnPach, TEXT("")) == 1)
    {
        std::vector<CString> lstFiles;
        CTextFileUtil::GetbrowseFiles(ReturnPach, lstFiles);
        if (lstFiles.size() > 1)
        {
            for (int i = 0; i < lstFiles.size(); i++)
            {
                m_FileList.AddString(lstFiles);
            }
        }
    }
===========================================================================================
CString CTextFileUtil::Getbrowse(CString &ReturnPach)
{
    // CString ReturnPach;
    TCHAR szPath[_MAX_PATH];                            // 保存路径变量
    BROWSEINFO bi;                                      // BROWSEINFO结构变量
    bi.hwndOwner    = NULL;                             // HWND句柄
    bi.pidlRoot       = NULL;                           // 默认值为NULL
    bi.lpszTitle       = _T("文件浏览对话框");          // 对话框标题
    bi.pszDisplayName = szPath;                         // 选择文件夹路径
    bi.ulFlags        = BIF_RETURNONLYFSDIRS;           // 标记
    bi.lpfn           = NULL;                           // 默认值为NULL
    bi.lParam         = NULL;                           // 回调消息
    LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi);  // 显示文件浏览对话框
    if(pItemIDList)
    {
        if(SHGetPathFromIDList(pItemIDList,szPath))     // 判断是否获得文件夹路径
        {
           ReturnPach = szPath;
        }
    }
    else
    {
        ReturnPach = ""; //文件夹路径为空
    }
    return ReturnPach;
}

void CTextFileUtil::GetbrowseFiles(const TCHAR* ReturnPach, std::vector<CString> &lstFiles)
{
    CFileFind ff;
    CString strPath = ReturnPach;
    if (strPath.Right(1) != "\\")
    {
        strPath += "\\";
    }
    strPath += "*.*";
    BOOL res = ff.FindFile(strPath);
    while (res)
    {
        res = ff.FindNextFile();
        if (ff.IsDirectory() && !ff.IsDots())                // 如果是一个子目录,进行递归查找
        {
            CTextFileUtil::GetbrowseFiles(ff.GetFilePath(), lstFiles);
        }
        else
        {
            if (!ff.IsDirectory() && !ff.IsDots())
            {
                CString strFileName = ff.GetFileName();
                if (strFileName.Right(3) == "dwg")
                {
                    strFileName = TEXT("\\") + strFileName;
                    strFileName = ReturnPach + strFileName;
                    lstFiles.push_back(strFileName);
                }
            }
        }
    }
    ff.Close();
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-9-10 10:42:06 | 显示全部楼层
高深莫测啊
发表于 2015-5-29 15:27:51 | 显示全部楼层
拼起来的图打散了吗?貌似很快啊
发表于 2020-5-20 21:41:26 | 显示全部楼层
完全看不懂,连命令都不知道是什么
发表于 2024-5-9 11:42:46 | 显示全部楼层
好东西,收藏留存,拼图神器
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 20:18 , Processed in 0.180113 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表