2024年4月26日发(作者:)
本人是IDL新手,目前在用IDLDrawWidget和C#进行编程工作.
下面我有个问题,想请教一个高人,麻烦给我指导一下!谢谢!
我的问题就是,如何获取我的IDLDrawWidget对象呢????
我是这样来写的:
h
IDL路径
n = L((int)); //初始化IDL窗体
if (n == 0)
{
("IDL 窗体初始化失败!");
return;
}
DrawWidget(); //创建显示窗体
eStr("Widget_Control,
对象.
但是问题,就出现在这里 ,我下面再用oWindow对象的时候 ,总是提示我:
% Object reference type required in this context: OWINDOW.
错误是出在【eStr("Widget_Control,
IDLDrawWidget1, Get_Value =oWindow"); 】这一行
这里传递的IDLDrawWidget1在IDL的执行过程中是获得不到窗口的ID的,应该传
递它的DrawID,并且需要进行类型转换:
IDLDrawWidget1,
Get_Value =oWindow"); //获得oWindow对象,也就是axIDLDrawWidget1的draw
=
tionStrings["IDLPath"].ConnectionString; //获得
eStr("Widget_Control ,"+(axIDLDrawWidget1.
DrawId).ToString()+",get_value = oWindow");
如使用对象法记得设置axIDLDrawWidget的retain=2!
您好,我按照您给我说的来进行写了 .仍然出现
% Object reference type required in this context: OWINDOW.
我是这样来写的!
int n;
h =
tionStrings["IDLPath"].ConnectionString; //获得
IDL路径
n = L((int)); //初始化IDL窗
体
if (n == 0)
{
("IDL 窗体初始化失败!");
return;
}
putWnd((int)
e); //初始化输出窗体.若没有,则写 0
DrawWidget(); //创建显示窗体
=2; //进行对象图形绘制
eStr("Widget_Control, " +
().ToString() + ", get_value =oWindow"); //获
取oWindow
eStr("oView = OBJ_NEW('IDLgrView',
COLOR = [205, 245, 205]," +
"VIEWPLANE_RECT = [-2, -2, 4, 4], ZCLIP = [3, -3]," +
"PROJECTION = 2, DEPTH = [-3, 3])"); //这里,我随便定义一个
oView.没有任何意义,就是为了测试,而已.
eStr("print,oWindow"); //这里,我打印
一下oWindow ,发现打印结果是整型,值为32 .而不是一个结构体类型.
eStr("oWindow->Draw, oView");//然
后到这一句的时候,就出现了,上面我所说的错误!
非常感谢您刚才给我的回帖,请您能给我留个联系方式吗QQ之类的,我想跟您学习与交流一
下IDL,非常感谢您!!!!!!
急切的盼望您的回复!
错误是出在【eStr("Widget_Control,
IDLDrawWidget1, Get_Value =oWindow"); 】这一行
这里传递的IDLDrawWidget1在IDL的执行过程中是获得不到窗口的ID的,应该传
递它的DrawID,并 ...
很抱歉,上午回的太匆忙,说错了,【如使用对象法记得设置axIDLDrawWidget的
retain=2!】应该为
如使用对象法记得设置axIDLDrawWidget的graphicsLeve=2!
lianyi_dyq 发表于 2009-4-7 10:49
发布评论