authorwar多媒体课件制作经验 -欧洲杯比赛网址

 authorwar多媒体课件制作经验 -欧洲杯比赛网址
originality | july 05

入门authorwar多媒体课件制作的经验


用authorwar多媒体课件制作一段框架之后,想到一个方法可以用vb其它应该也可以,只不过vb简单一些而已)来控制我authorwar顺序。将这个方法用到课件中,实践证明是可行的

用vb顺序做主框架来调用authorware多媒体课件制作顺序,当整个东西很大的时候,一般不会做成一个文件,尤其对于多媒体课件来说,如果能把各个章节、模块分成几个独立的文件,那是最好的然而如果单单用authorwar话,总不能尽如人意的做到这一点。尽管可以用jumpfiljumpout等等函数,也可以用库将资源独立进去,但是考虑总体结构的时候,总是存在一些问题。衔接不够紧密,不能使用公共的模块,几个文件相互通讯困难,而且当框架功能比拟复杂时,authorwar便显的能力缺乏了

原理:

1.vb顺序里可以通过发送键盘或鼠标消息来激活authorwar顺序中的交互。比方:authorwar中定义一个永久的热区交互,同时设置热键为f12那么,vb顺序中先用setfocu将输入聚焦定位到authorwar窗口(假设已经知道了authorwar窗口的句柄,如何得到句柄下面进一步讨论)然后用postmessag或者sendmessag给它发送一个f12keydown消息。

2.同样authorwar顺序也可以给vb顺序发消息,让它响应。根据我试验,用mousedown消息更好一些,可以发送00坐标,甚至负值的坐标的mousedown消息,总之是用户不可能点到地方,vb顺序的form_mousedown事件中再判断一下坐标。

3.如何传送参数。vb要控制authorwar多媒体课件制作顺序作动作必定要传送一些参数(当然你可以指定f11翻到下一页,但是要翻到第5页怎么办?

应用顺序之间传送参数可以用dde但是这太复杂了想到一个简单的方法是利用dll全局变量。dll有自己的数据段,可以通过引出函数来实现各个顺序对dll全局数据的访问。一个简单的例子如下:

intg_imsg    //定义一个全局变量。

//通过这个函数设置g_imsg值。

extern"c"voidfa rpa sca l_expertsetmsgintval

{

g_imsg=val

}

//通过这个函数读取g_imsg值。

extern"c"intfa rpa sca l_expertgetmsg

{

returng_imsg

}

这样两个应用顺序便可以通过同一个dll来传递参数-一个用setmsg给g_imsg赋值,另一个用getmsg读出这个值。

对于传送字符串要复杂一些,但应该也是可以的

4.有了传送参数的方法之后,那么用vb顺序启动authorwar顺序之前,先在dll中设置初始化的消息号、vb窗口句柄等等参数;然后当authorwar顺序启动,首先到dll中读出这些参数,如果消息号不是初始化的消息号,说明不是由vb顺序启动)保管vb窗口句柄。然后用2中说的方法给vb发回应消息,同时传送自己的窗口句柄等参数。

5.接下去,有了对方的窗口句柄之后,就可以用12中的方法给对方发消息,同时用3方法传送参数,这样双方便可以响应对方的消息,并根据参数做相应的动作。


 


网站地图