找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 724|回复: 14

[求助]:<单文档>如何实现打开其他指定文档

[复制链接]
发表于 2005-12-2 13:22:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如题,

当AutoCAD的系统变量 SDI 为 1 的时候,(单文档状态)

如何实现打开其他指定文档,我是新手,请各位高手指教。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-2 13:49:20 | 显示全部楼层
主程序:
// This is command 'OPENEXISTFILE'
void wjredcadopenexistfile()
{
        // TODO: Implement the command
  struct resbuf rb;
  CString filePath,fileName;
  acedGetVar("dwgtitled",&rb);
  rb.restype=RTSHORT;
  CGenericFun* geFun=new CGenericFun;
  if(!geFun->myFiles(filePath,fileName,1)) return;
  if(rb.resval.rint==0)
          //还未命名
    acedCommand(RTSTR,"open",RTSTR,"Y",RTSTR,filePath,0);       
  else
  {
    //已命名过了
    acedCommand(RTSTR,"qsave",0);
    acedCommand(RTSTR,"open",RTSTR,filePath,0);       
  }
}

辅助程序:
BOOL CGenericFun::myFiles(CString& filePath,CString& fileName,int fileStyle)
{
  BOOL bOpenFileDialog;
  switch(fileStyle)
  {
    case 0://新建
      bOpenFileDialog=false;
      break;
    case 1://打开
      bOpenFileDialog=TRUE;
      break;
    case 2://保存
      bOpenFileDialog=false;
      break;
    case 3://另存
      bOpenFileDialog=false;
      break;
    default:
      break;
  }
  CString szFilter=_T("文件 (*.dwg)|*.dwg|所有文件 (*.*)|*.*||");
        CString szDefExt(_T(".dwg"));
        CAcUiFileDialog* mDlg=new CAcUiFileDialog(bOpenFileDialog,szDefExt,NULL,
                        OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);
  switch(fileStyle)
  {
    case 0://新建
      bOpenFileDialog=false;
      mDlg->m_ofn.lpstrTitle="新建款式";
      break;
    case 1://打开
      bOpenFileDialog=TRUE;
      mDlg->m_ofn.lpstrTitle="打开款式";
      break;
    case 2://保存
      bOpenFileDialog=false;
      mDlg->m_ofn.lpstrTitle="保存款式";
      break;
    case 3://另存
      bOpenFileDialog=false;
      mDlg->m_ofn.lpstrTitle="另存款式";
      break;
    default:
      break;
  }
  int ret=mDlg->DoModal();
        if(ret!=1) return false;
  filePath=mDlg->GetPathName();
  fileName=mDlg->GetFileTitle();
  if(fileStyle==1)
  {
    char mFileName[100];
          strncpy(mFileName,(LPCTSTR)filePath,sizeof(mFileName));
          char reName[100];
          if(acedFindFile(mFileName,reName)!=RTNORM)
          {
                  acutPrintf("\n文件不存在");
                  return false;
          }
  }
  return TRUE;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-2 14:23:28 | 显示全部楼层
Acad::ErrorStatus   acedSyncFileOpen(const char * pszFileToOpen);

这个函数可以么??
不太明白你的意思~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-2 15:33:50 | 显示全部楼层
关键是以下几行啊
if(rb.resval.rint==0)
//还未命名
acedCommand(RTSTR,"open",RTSTR,"Y",RTSTR,filePath,0);
else
{
//已命名过了
acedCommand(RTSTR,"qsave",0);
acedCommand(RTSTR,"open",RTSTR,filePath,0);
}
这样做的目的是避免弹出AutoCAD是否要保存的对话框
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-2 15:56:00 | 显示全部楼层
也就是
acedCommand(RTSTR,"open",RTSTR,"Y",RTSTR,filePath,0);
起了决定性的作用,对吗?
感谢两位,
对了,RedCAD ,这回我没有用繁体字。
呵呵。。玩笑。。:)


Acad::ErrorStatus acedSyncFileOpen(const char * pszFileToOpen);
我也找到了,但没怎么会用,我是刚接触ARX的,

pianette ,RedCAD能否举些实例?

感谢感谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-2 18:13:36 | 显示全部楼层
你要用繁体字我看不懂(本人愚蠢),要是那样我又不回答你了,嘻嘻
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-5 10:27:46 | 显示全部楼层
晕倒。。。。。
能不能用实例给我讲一讲
Acad::ErrorStatus acedSyncFileOpen(const char * pszFileToOpen);
谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-5 14:44:22 | 显示全部楼层
用这个命令就不能象 RedCAD 提供的代码一样防止是否保存的对话框弹出了,但如果没有这种限制,这个命令还是很好用的

直接将要打开的文档的完整路径作为参数传给这个函数就可以了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-6 08:54:29 | 显示全部楼层
十分感谢二位,以后还要多多帮忙呀。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 09:56:13 | 显示全部楼层
世上无永远的老师,也没有永远的学生,共同学习才是真
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 12:47:27 | 显示全部楼层
RedCAD你很棒,是版主吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-6 16:20:56 | 显示全部楼层
不是,我只是想好好做个中国人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-19 10:37:37 | 显示全部楼层
acedCommand(RTSTR,"open",RTSTR,"Y",RTSTR,filePath,0);
我的执行到这里就报未知命令错误,不知道怎么回事
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-10 14:09:48 | 显示全部楼层
我执行“acedCommand(RTSTR,"open",RTSTR,"Y",RTSTR,filePath,0);
”怎么打不开文件?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-10 14:41:02 | 显示全部楼层
那肯定是你的问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 13:48 , Processed in 0.226285 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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