使用tab控件的对话框出错
本帖最后由 zdqwy19 于 2014-7-25 21:30 编辑win7 64位、cad 2014 64位、vs2010sp1创建一个对话框使用tab控件,tab子控件放置默认的取消按钮未做修改,现在出现的问题是,按过tab子控件上的取消按钮或者主对话框右上角的关闭按钮,再次运行选择命令cad假死。
开始对话框
按过取消之后的cad
完整的工程文件
注:IE11发帖时这一条工具栏不显示。
假死多长时间? 风树 发表于 2014-7-25 21:53 static/image/common/back.gif
假死多长时间?
不是假死多长时间,而是出现选择小方块就不动了 cad2014不是有个升级版的,试试那个看看啦
源代码你没有做出其它改动的情况下,可以试试看 风树 发表于 2014-7-25 22:49 static/image/common/back.gif
cad2014不是有个升级版的,试试那个看看啦
源代码你没有做出其它改动的情况下,可以试试看
应该是tab控件的问题,只是不知道如何处理。
//选择圆数量;
void CArxDialog::OnBnClickedButtonYSL()
{
//红色为取消再运行出错的部分
// TODO: 在此添加控件通知处理程序代码
GetParent()->GetParent()->EnableWindow(TRUE);
//隐藏对话框把控制权交给AutoCad;
GetParent()->ShowWindow(SW_HIDE);
GetParent()->GetParent()->SetFocus();// 隐藏对话框;
//提示用户选择对象;
ads_name ssname;
struct resbuf *rb;//结果缓冲区链表;
//构造选择集过滤器;
rb = acutBuildList(RTDXF0, ACRX_T("CIRCLE"),RTNONE);
if(RTNORM == acedSSGet(NULL,NULL, NULL, rb, ssname)){}
GetParent()->ShowWindow(SW_SHOW); // 再次显示我们的对话框;
GetParent()->SetFocus(); //将焦点重置回原来的自己;
GetParent()->GetParent()->EnableWindow(FALSE); // 禁用 AutoCAD 窗口;
GetParent()->EnableWindow(TRUE); // 使我们的对话框显示;
//从成员变量传送数据的值到对话框;
UpdateData(FALSE);
}
1,一般在tabChild对话框,OnOK和OnCancle都要实例代码,但内部不要有代码
C::OnOK()
{
}
建议取消那个按钮
2,使用Tab的时候一定要注意父窗口的问题,GetParent这里,一定一定要注意是谁。
按了选择按钮,对话框就要隐藏,这里一个SW_HIDE就够了,不用Enable了 这估计是2014的一个问题,同样代码在2008上就没有问题。绕过tab方法解决了。
页:
[1]