找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1264|回复: 2

[求助] 关于两个对话框间数据传递问题

[复制链接]
发表于 2013-9-10 22:12:33 | 显示全部楼层 |阅读模式

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

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

×
AcDbObjectIdArray objIds是对话框2中的一个公共数据;但是我按下面方法去得到不同的结果,请问哪错了啊??//////////////////////////////////////////////////////////////类class CSaveFile : public CAcUiDialog {        DECLARE_DYNAMIC (CSaveFile)
public:        CSaveFile (CWnd* pParent =NULL, HINSTANCE hInstance =NULL) ;        ................................省略一些函数的声明        ................................         AcDbObjectIdArray objIds;//声明一个数组
}

选择实体函数
AcDbObjectIdArray Ccalculation::SelectObj(ads_name &entName,AcDbObjectId &entId,AcDbObjectIdArray& objIds)
{       
        long len=0;
        acedSSGet(NULL,NULL,NULL,NULL,entName);
        int rt=acedSSLength(entName,&len);
        if (rt == RTNORM)
        {
                long length;
                acedSSLength(entName, &length); // 获得选择集中的对象个数
                for (int i = 0; i < length; i++)
                {
                        ads_name ent;
                        acedSSName(entName, i, ent);               
                        acdbGetObjectId(entId, ent);
                        objIds.append(entId);
                }       
        }
        return objIds;
        acedSSFree(entName);
}

主函数
void zzfyzftest(){#ifdef OARXWIZDEBUG        acutPrintf ("\nOARXWIZDEBUG - zzfyzftest() called.");#endif // OARXWIZDEBUG
        CSaveFile cs;//对话框2对象        CFirstDialog FirstDialog;//对话框1对象        ads_name entName;        AcDbObjectId entId;
        if (FirstDialog.DoModal()==IDOK)        {                Ccalculation::SelectObj(entName,entId,cs.objIds);                }
cstring str;str.fomat("%d",cs.objIds.length());AfxMessageBox(str);//假设选择一个实体,显示1}       
这个在SaveFile.cpp中void CSaveFile::OnButton2() //初始化和选择实体{                 CString str;                 str.Format("%d",objIds.length());                AfxMessageBox(str);//上面显示1,这里却显示0,照道理不是都一样的吗???}

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

已领礼包: 13个

财富等级: 恭喜发财

发表于 2013-9-11 08:48:57 | 显示全部楼层
函数定义里面已经用 AcDbObjectIdArray& objIds 引用了,函数里面也通过这个赋值带回结果了,你的函数不应该设计成返回值是AcDbObjectIdArray 了。

点评

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

使用道具 举报

 楼主| 发表于 2013-9-12 20:08:15 | 显示全部楼层
LoveArx 发表于 2013-9-11 08:48
函数定义里面已经用 AcDbObjectIdArray& objIds 引用了,函数里面也通过这个赋值带回结果了,你的函数不应 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 00:16 , Processed in 0.184128 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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