乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 143|回复: 9

[求助]关于嵌套对话框及图形的显示

[复制链接]

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-20 15:44:00 | 显示全部楼层 |阅读模式
这是我做的一个简单的例子:输入命令addline,跳出主对话框“对话框的嵌套”,点击主对话框的按钮“调用另一个对话框”跳出对话框“画直线”,点击“画直线”按钮,不能立刻显示图形,分别按两个对话框的确定按钮后才出现右侧的一条直线。
我用的是VC++6.0和ARX2002,两个对话框是模态对话框。
请问各位高手,能不能在点击“画直线”按钮时立即出现右侧的直线呢?

xewvphuhaem.JPG

xewvphuhaem.JPG



这是源码,请高手指点迷津!

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2008-10-20 16:33:00 | 显示全部楼层
改为非模态的 在点击画线时 destory掉两个对话框
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-20 18:00:00 | 显示全部楼层

caddeveloper兄,不行啊,我将主对话框改成了非模态的,按“画直线”按钮就出现警告。 画直线按钮的程序段如下:
void CLineDlg::OnBUTTONline()
{
// TODO: Add your control notification handler code here
//隐藏对话框把控制权交给AutoCAD
BeginEditorCommand();

AcGePoint2d InsrtPt(0, 0);
AcGePoint2d Pt1(0, 0);
//提示用户输入一点
ads_point pt;
if (acedGetPoint(NULL, "\n输入一个点:", pt) == RTNORM)
{
  //梁柱刚性连接1
  InsrtPt.set(pt[X], pt[Y]);
&nbspt1.set(pt[X]+1000, pt[Y]+1000);
  CCreateEnt::CreatePolyline(InsrtPt, Pt1, 1);
  // 如果点有效,继续执行
  
  CompleteEditorCommand();
}
else
{
  // 否则取消命令(包括对话框)
CancelEditorCommand();
}

}

dda15j0yytf.JPG

dda15j0yytf.JPG


这是出现的警告
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:f3nca3osk5n.rar 
下载次数:0  文件大小:36.7 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

8

主题

47

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2008-10-20 20:57:00 | 显示全部楼层
试试用以下函数吧
BeginEditorCommand();
CompleteEditorCommand();
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-21 08:59:00 | 显示全部楼层

这两个函数我都用了
回复

使用道具 举报

3

主题

17

帖子

1

银币

初来乍到

Rank: 1

铜币
29
发表于 2008-10-21 17:34:00 | 显示全部楼层
绘制完线的时候用一下,发送cad命令 regen,重绘模型看看。
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-22 09:27:00 | 显示全部楼层
绘制完线后发送regen还是和原来一样,要关闭两个对话框才能看到直线。
extern Adesk::Boolean acedPostCommand(const char* );
void CLineDlg::OnBUTTONline()
{
// TODO: Add your control notification handler code here
//隐藏对话框把控制权交给AutoCAD
BeginEditorCommand();

AcGePoint2d InsrtPt(0, 0);
AcGePoint2d Pt1(0, 0);
//提示用户输入一点
ads_point pt;
if (acedGetPoint(NULL, "\n输入一个点:", pt) == RTNORM)
{
  InsrtPt.set(pt[X], pt[Y]);
&nbspt1.set(pt[X]+1000, pt[Y]+1000);
  CCreateEnt::CreatePolyline(InsrtPt, Pt1, 1);
  acedPostCommand("regen");  
  // 如果点有效,继续执行
  CompleteEditorCommand();
}
else
{
  // 否则取消命令(包括对话框)
CancelEditorCommand();
}

}
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-22 14:30:00 | 显示全部楼层
画完直线,并添加到数据库后,用 这个函数 acdbEntUpd 更新一下.
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2008-10-22 17:40:00 | 显示全部楼层

还是不行,会出现下面的警告

zpewehbtmbz.JPG

zpewehbtmbz.JPG


这是源码,请高手指点迷津!
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:v2mvken5vro.rar 
下载次数:0  文件大小:33.47 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

1

主题

10

帖子

3

银币

初来乍到

Rank: 1

铜币
21
发表于 2009-1-22 22:25:00 | 显示全部楼层
  CCreateEnt::CreatePolyline(InsrtPt, Pt1, 1);
  // 如果点有效,继续执行   
  CompleteEditorCommand();
这两行换一下,先结束退出交互
在添加线
CompleteEditorCommand();
CCreateEnt::CreatePolyline(InsrtPt, Pt1, 1);
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-6 04:04 , Processed in 0.171133 second(s), 80 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表