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