#authorware7中U32ODBC使用.docx
- 文档编号:10514914
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:33
- 大小:1.09MB
#authorware7中U32ODBC使用.docx
《#authorware7中U32ODBC使用.docx》由会员分享,可在线阅读,更多相关《#authorware7中U32ODBC使用.docx(33页珍藏版)》请在冰点文库上搜索。
#authorware7中U32ODBC使用
4.1.1 什么是ucd和u32
ucd 包括authorware自带的ucd函数和用户用vb、vc、delphi编写的ucd函数。 ucd函数又称为外部函数,在使用之前必须先引入到当前文件中,当外部函数被正确引入后,我们就可以像使用系统函数一样使用它了。 ucd函数的后缀一般为u32<32位)或ucd<16位,在windows3.x中使用)。 在authorware7.0中已经不再带有16位的ucd了。 4.1.2 如何导入外部函数 用户自定义函数引入的步骤,以装载“cover.u32”为例: 1)用authorware新建一个文件,并命名为"cover.a7p". 2)选择【窗口】→【面板】→【函数】菜单项或单击工具栏上的【函数】按钮,打开函数对话框。 3)在函数对话框的“种类”下拉列表中选择当前的文件“cover.a7p”,单击“加载”按钮 4)弹出“加载函数”对话框。 在对话框中选择要加载的外部函数,这里选“cover.u32”单击【打开】按钮。 5)弹出对话框,在“名称”项下面显示的是“cover.u32”所包含的两个函数“cover(>”和“uncover(>”,按住【ctrl】快捷键,再分别单击着两个函数就可以选中它们。 单击【加载】按钮装载这两个被选中的函数。 6)如果出现如图4-1所示,说明函数已经加载成功,如选中“cover”函数,则在下面的“描述”框中显示的是函数的名称和具体的使用方法。 图4-1 加载“cover”函数 7)将外部函数引入到计算图标或指定的区域,只要打开计算图标,双击图4-1中的函数名即可,效果如图4-2所示。 图4-2 “cover”函数的应用 4.1.3 如何覆盖演示窗口外的 桌面部分——cover.u32 如果你的多媒体演示系统的显示区域大小设置为640×480像素,而显示器的分辨率被设置成800×600像素,那么它在运行的时候显示区域比屏幕的区域要小。 屏幕上的其他部分在你的程序运行时会继续显示在屏幕上。 这样,会使用户分心,那么有没有一个办法使程序在运行时隐藏其余部分而不干扰用户的视线呢? 方法是运用u32函数cover和uncover,我们来举一个例子。 1)拖入一个显示图标,在显示图标中导入一个背景图片。 2)拖入一个交互图标,在交互图标右边拖入三个计算图标,分别起名为“隐藏桌面”、“显示桌面”和“退出演示”。 在交互图标中安排好三个按钮的相对位置。 3)载入<上一节中已经介绍过)u32函数包cover.u32中的函数: cover(>和uncover(>。 4)打开“隐藏桌面”计算图标在其中输入: cover(>。 5)打开“显示桌面”计算图标在其中输入: uncover(>。 6)打开“退出演示”计算图标在其中输入: uncover(> quit(> 来结束演示。 程序结束前一定要取消覆盖屏幕,即运行uncover(>,不然会影响到其他程序的运行。 7)该程序一定要打包以后才能看出运行效果。 最好在打包前不要运行此程序。 4.1.4 如何载入windowsapi 一、windowsapi简介 windowsapi是应用程序编程接口(applicationprograminginterface>的缩写,它是一系列复杂的函数、消息的集合,为高级语言提供了大量可扩充的功能强劲的函数。 二、windowsapi函数的载入 aw中可以利用动态链接库 一个dll文件就是一个函数库,包含若干个函数。 调用dll文件时,必须明确函数的调用协议,包括函数的名称、参数的数目、参数的类型、返回值的类型。 1)windows函数库主要的几个文件。 l gdi32.dll: 屏幕显示及打印功能的函数集 l user32.dll: 鼠标、键盘、通信端口、声音、时钟功能的函数集 l kernel32.dll: 文件及内存管理<核心部分)功能的函数集 l mpr.dll: windows32网络接口库 l advapi32.dll: windows32、advapi32核心部件 2)dll文件的载入过程。 与调用外部函数相似,dll函数集在使用之前必须事先载入和声明,其载入的过程要比调用ucd函数更加复杂。 以装载“window\system\shell32.dll”文件为例,具体的载入过程介绍如下。 单击工具栏上的【函数】按钮,打开“函数”面板,在“种类”下拉列表中选择当前的文件“关于.a7p”。 单击【加载】按钮,出现“加载函数”对话框,选择“c: \window\system\shell32.dll”文件,单击【打开】按钮,出现如图4-3所示的函数设置对话框,具体的选项如下。 functionname: 输入要调用的函数的名称,这里是“shellabouta”. arguments: 指明要用到的参数类型,这里是“long,string,string,long”。 return: 函数返回值的类型,这里是“long”。 description: 函数的语法。 图4-3 载入dll函数设置对话框 单击图4-3中的【load】按钮装载函数,如果装载成功,则在对话框中显示“successfullyloaded"shellabouta(>"”。 装载完毕后,单击图4-3中的【done】按钮,被成功装载的函数就会出现在函数框中。 4.1.5 调用window标准的“关于”窗口 要调用window标准的“关于”窗口主要利用shell32.dll文件中的“shellabouta(>”函数实现。 1)“shellabouta(>”函数的使用格式。 shellabouta(hwnd,szapp,szotherstuff,hicon> hwnd: 设置窗口的句柄。 szapp: 设置窗口的标题。 szotherstuff: 在版权说明和使用权之间的空白处增加额外的说明。 hiocn: 一般取0。 2)新建一个文件,名为“关于.a7p”,装载函数“shellabouta(>”,其过程与上面是一样的,这里不再介绍。 3)装载函数成功后,在流程线上放一计算图标,在其中输入如下内容: szapp="authorware7.0使用及技巧精解" szotherstuff="欢迎您使用authorware7.0 使用及技巧精解! " shellabouta(windowhandle,szapp,szotherstuff,0> 其中szapp,szotherstuff是两个自定义变量 4)保存并运行程序。 4.1.6 如何制作最小化、最大化、关闭窗口 按钮和拖动窗口 在用authorware制作多媒体作品时,我们希望展示窗口和普通窗口一样可以最小化、关闭、拖动。 要实现这一目的,最简单的方法是在设置文件属性时,保留标题栏,但这样会影响作品的美观。 如何制作自己的标题栏,使之和整个作品搭配协调,并且可以实现标题栏的功能呢? 使用windowsapi函数而不通过单击窗口的控制图标来控制authorware的运行窗口,它可以使你的authorware程序在没有标题栏的情况下自由控制窗口的显示状态,这对于编制精美的多媒体程序是很有帮助的。 你可以找一个你认为满意的窗口把它截取下来,用photoshop修改成你满意的样子,保存为作品的背景。 再制作最小化和关闭的按钮图形以备用。 1)新建文件 在authorware中新建一个文件。 单击【修改】→【文件】→【属性】菜单,在弹出的“文件属性”对话框中选择“回放”标签,将“大小”项设定为“根据变量”,取消“标题栏”和“菜单栏”的复选框前的对勾。 2)窗口设置 拖一个显示图标到流程线上,命名为“背景”。 将制作好的背景图片导入,再拖一个计算图标到流程线上,命名为“窗口大小”,双击,在其中输入程序: resizewindow(400,280> movewindow(100,100> 第一句的作用是将窗口大小设置成合适大小<以背景图片的大小为准)。 第二句的作用是将窗口移动到屏幕的合适位置。 3)最小化、最大化及关闭功能 在流程线上放置一个交互图标,命名为“窗口控制”。 在其右侧放置三个计算图标,响应类型都设为“按钮响应”,分别命名为“最小化”、“最大化”、“关闭”。 在它们的分支属性对话框“响应范围”项中复选“永久”,“分支”项选择“返回”。 如你认为需要,可编辑这三个响应的按钮样式,用制作好的图片代替默认的样式并调整其位置。 在“最小化”图标中输入程序: showwindowasync(windowhandle,6) 在“最大化”图标中输入程序: showwindowasync(windowhandle,3) 这里调用windowsapi函数showwindowasync实现将窗口最小化、最大化。 保存时,系统会弹出对话框,提示选择此函数的来源,选择winapi.u32。 authorware6以前的版本是加载api函数showwindow,现在如还加载它则会出现于aw内部函数showwindow同名而无法加载的情况,从而无法完成“使窗口最小化”等任务。 现在加载api函数showwindowasync,该函数可以替代showwindow原有的功能。 格式为: showwindowasync(hwndhwnd,intncmdshow> 其中: hwndhwnd 设置窗口的句柄,一般为windowhandle ncmdshow: 定义如何显示启动程序的常数值,即程序启动后的窗口形式,取值如下。 0——隐藏窗口,活动状态给令一个窗口。 1或9——用原来的大小和位置显示一个窗口,同时令其进入活动状态。 2——最小化窗口,并将其激活。 3——最大化窗口,并将其激活。 4——用最近的大小和位置显示一个窗口,同时不改变活动窗口。 5——用当前的大小和位置显示一个窗口,同时令其进入活动状态。 6——最小化窗口,活动状态给令一个窗口。 7——最小化一个窗口,同时不改变活动窗口。 8——用当前的大小和位置显示一个窗口,不改变活动窗口。 在“退出”图标中输入程序: quit(> 作用是退出本程序。 4)窗口移动功能 在这里我们要实现当用户拖动自定义标题栏时,窗口随之移动的功能。 在交互图标“窗口控制”右侧放置一个“组群”图标,响应类型为“热区响应”,命名为“移动窗口”,在分支属性对话框中“响应范围”项复选“永久”,“分支”项选择“返回”。 设定其响应范围包围背景的上部分,这就是我们的标题栏范围。 双击“移动窗口”图标,在其中放置一个“交互”图标,命名为“movewindow”。 在此交互图标右侧放置一个“计算”图标和一个群组图标,响应类型都为“条件响应”,响应条件分别为mousedown和~mousedown。 设置mousedown图标分支的属性,“自动”为“为真”,“分支”为“重试”。 设置~mousedown图标分支的属性,“自动”为“为真”,“分支”为“退出交互”。 在mousedown计算图标中输入程序: releasecapture(> sendmessage(windowhandle,161,2,0> 这里同样是调用windowsapi函数实现窗口可拖动的功能。 当系统提示选择这两个函数的来源时,选择winapi.u32。 ~mousedown群组图标内为空。 整个程序就完成了,最后的流程如图4-4所示。 我们看一下最后的效果。 单击“最小化”按钮可将窗口最小化到任务栏,在任务栏上单击可恢复;单击“关闭”按钮可退出本程序;拖动自定义的标题栏可移动窗口的位置,达到了预期的效果。 图4-4 窗口属性流程图 这个程序中你可以再设一个按钮,命名为“还原”,在其计算图标中输入: showwindowasync(windowhandle,1) 设一个与最大化正好相反的激活条件和非激活时隐藏按钮,最大化按钮也要同样设置。 并把“最大化”和“还原”按钮重叠放置。 4.1.7 用winapi.u32制作消息框 在authorware制作消息框可以利用其提供的winapi.u32中的messagebox函数,其格式为: messagebox(hwndhwnd,lpcstrlptext,lpcstrlpcaption,uintutype>。 用它可以做出标准的windows消息框。 一、方法一 首先,新建一个要求用户注册的authorware7文件,然后加载winapi.u32中的messagebox函数。 然后,在流程线上放置一个名为“消息”的计算图标,在其中输入如下内容: hh: =messagebox(windowhandle,"密码错误,请输入正确的注册码! ","提醒",72)。 hh是一个自定义变量,用于判断用户按了哪个按钮,以便执行下一个流程。 至于它的返回值,将在下边一并列出。 接着,在“消息”计算图标下再放置一个“判断”计算图标,在其中输入以下内容: ifhh=2then quit(> else goto(iconid@"跳转到注册码输入"> endif 内容仅作为参考,大家可以根据实际情况自行确定输入内容。 好了,现在运行程序看一下,感觉如何? 如果适当修改messagebox函数的“uintutype”参数值,还可以得到五种效果。 具体效果如何,请诸位自己尝试,在此就不一一展示了。 1)uintutype参数值可分为五大类,分别介绍如下。 第一类可取值为: 0、1、2、3、4、5、8、10 第二类可取值为: 16、17、18、19、20、21、24、26<在第一类取值加16) 第三类可取值为: 32、33、34、35、36、37、40、42<在第一类取值加32) 第四类可取值为: 48、49、50、51、52、53、56、58<在第一类取值加48) 第五类可取值为: 64、65、66、67、68、69、72、74<在第一类取值加64) 2)各按钮的返回值介绍如下。 1确定 5忽略 2取消 6是 3终止 7否 4重试 其中,“中断”按钮没有返回值。 二、方法二 首先,我们来看一下打开如何一个计算图标。 在计算图标的快捷工具栏右侧有个“! ”的按钮,作用是“插入提示框”,单击该按钮,会弹出如图4-5所示的设置框。 图4-5 消息框的设置对话框 设置完后,单击“test”按钮看看效果如何? 然后确定。 在计算图标中的当前位置就插入了一条语句,还有各个按钮的返回值。 如: systemmessagebox(windowhandle,"你真的想退出 吗? ","退出",52)--6=yes,7=no 运行结果如图4-6所示<其中标题栏中的“退出”可在计算图标中修改)。 图4-6 消息框 systemmessagebox是系统函数不需要在winapl.u32中加载。 格式为: result=systemmessagebox(windowhandle,"text", "caption"[,typeor#buttons,#icon,default, #modality]> 参数设置与messagebox类似。 4.1.8 用winapi.u32屏蔽功能键和 隐藏任务栏 1)新建一个文件,文件名为sample.a7p。 2)放置一计算图标于流程线上。 3)按【ctrl+shift+f】快捷键,打开“函数”窗口。 4)选择sample.a7p,单击【加载】钮,打开winapi.us2文件,并引入其中的systemparametersinfo(>、findwindow(>和setwindowpos(>三个函数。 5)双击计算图标,在里面输入如下程序语句: systemparametersinfo(97,1,1,1>——屏蔽键盘所有功能键。 wnd: =findwindow(″shell_traywnd″,″″>——捕捉任务栏窗口。 setwindowpos(wnd,0,0,0,0,0,128>——隐藏任务栏窗口。 6)在程序的退出处放置一计算图标,双击计算图标,在里面写上: l systemparametersinfo(97,0,1,1>——恢复键盘所有功能键。 l wnd: =findwindow(″shell_traywnd″,″″>——捕捉任务栏窗口。 l setwindowpos 我们还可以在运行程序前,通过windows api函数捕捉所有的窗口,获得窗口的句柄,然后再向它们依次发送mw_quit消息,这样就可以在运行程序之前,关闭所有正在运行的程序,从而释放出更多的资源给你的多媒体作品。 4.1.9 用budeky.u32屏蔽功能键 设计程序时,因为某些特殊需要,有时可能需要屏蔽系统的某些功能键,比如【alt+tab】、【alt+f4】、【ctrl+q】等。 本例中就使用budeky.u32中的函数来屏蔽某些功能键,所使用的函数有: 1)disablequit<) 格式: result: =disablequit 屏蔽用于退出的某些快捷键,比如: 【alt+f4】、【ctrl+q】和【ctrl+.】。 2)disableswitching(> 格式: disableswitching(> 屏蔽某些功能键及组合,比如【alt+tab】、【alt+esc】、【ctrl+esc】、【ctrl+alt+delete】和窗口键。 3)restorequit 格式: restorequit(> 解除restorequit<)函数屏蔽的功能键。 4)restoreswitching(> 格式: restoreswitching(> 解除restoreswitching(>函数屏蔽的功能键。 具体步骤如下。 1)新建一个文件,保存为“屏蔽功能键.a7p”,文件流程如图4-7所示。 图4-7 屏蔽功能键流程图 在“初始化”图标中输入以下内容。 resizewindow(300,200> --设置窗口大小 setwindowtext(windowhandle,"屏蔽功能键"> 设置演示窗口标题栏的名称为“屏蔽功能键” 2)打开交互图标,输入图4-8所示的内容,调整好按钮的相对位置。 图4-8 交互图标中的显示对象 3)在“屏蔽功能键”按钮交互分支下的计算图标中输入以下内容: disableswitching(> hint: ="\"alt+tab\"、\"alt+esc\"、\"ctrl+esc\"、 \"ctrl+alt+delete\"和\"窗口键\"已被屏蔽" systemmessagebox(windowhandle,hint,"屏蔽功能 键",48>--1=ok 屏蔽功能键,然后显示提示信息。 技巧: 因字符串需要加双引号,而在提示信息中因为也有双引号,所以必须在内部每个双引号前加转意字符“\”。 第一个和最后一个双引号当然是不能加的。 4)在“屏蔽退出键”按钮交互分支下的计算图标中输入以下内容: disablequit(windowhandle> hint: ="\"alt+f4\"、\"ctrl+q\"和\"ctrl+.\"已被屏蔽" systemmessagebox(windowhandle,hint,,"屏蔽退出 键",48>--1=ok 屏蔽退出键,然后显示提示信息。 5)在“解除屏蔽”按钮交互分支下的计算图标中输入以下内容: --解除各键的屏蔽! restorequit(> restoreswitching(> hint: ="各键已经解除屏蔽! " systemmessagebox(windowhandle,hint,"解除屏蔽", 48>--1=ok 解除各键的屏蔽,然后显示提示信息。 6)在“退出”按钮交互分支下的计算图标中输入以下内容: --退出程序前解除屏蔽 restoreswitching(> restorequit(> quit(> 防止用户未单击“解除屏蔽”按钮解除对各键的屏蔽,在退出程序前执行解除屏蔽函数保证程序退出后各键均解除屏蔽。 7)运行程序,标题栏发生了变化。 单击“屏蔽功能键”按钮出现如图4-9所示的信息。 图4-9 屏蔽功能键消息框 4.1.10 如何设置你的演示窗口的位置总在 最前,即不被其他窗口覆盖 在有些时候,我们用authorware做的程序希望演示窗口的位置总在最前,即不要被其他窗口覆盖。 比如我们在程序中调用了word,在进行word编辑的同时authorware的主程序的小窗口仍然在前。 我们就要用到winapi.us2中的setwindowpos(>函数。 setwindowpos: 这个函数能为窗口指定一个新位置和状态。 它也可改变窗口在内部窗口列表中的位置。 函数格式: setwindowpos(hwndhwnd,hwndhwndinsertafter,intx,inty,intcx,intcy,uintuflags> 其中的参数意义如下。 hwnd: 欲设置的窗口的句柄。 hwndinsertafter: 窗口句柄。 在窗口列表中,欲设置的窗口hwnd会置于这个窗口句柄的后面。 这个参数也可能取下面的值: 1——将窗口置于窗口列表底部。 0——将窗口置于z序列的顶部;z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序。 -1——将窗口置于列表顶部,并位于任何最顶部窗口的前面<将一个窗口置顶,不会被任何窗口遮挡)。 -2——将窗口置于列表顶部,并位于任何最顶部窗口的后面。 x: 窗口新的x坐标。 y: 窗口新的y坐标。 cx: 新的窗口宽度。 cy: 新的窗口高度。 wflags取值如下: 1——保持当前大小 2——保持当前位置 4——保持窗口在列表的当前位置 8——窗口不自动重画。 10——不激活窗口。 32——围绕窗口画一个框<强迫一条wm_nccalcsize消息进入窗口,即使窗口的大小没有改变)。 64——显示窗口。 128——隐藏窗口。 例如: setwindowpos(windowhandle,-1,0,0,0,0,3>,取3时cx、cy、x和y设定都将被忽略。 4.1.11 用altools.u32函数动态改变屏幕 分辨率,让课件实现全屏播放 一个外挂函数——altools.u32,这里面有改变分辨率和隐藏任务栏的函数。 通过程序来改变分辨率和隐藏任务栏而实行全屏演示。 不过还要在程序退出的时候改回原来的分辨率。 下面我们就来看一看具体实现的办法。 一、加载函数 打开authorware,保存文件为“改变屏幕分辨率.a7p”。 按【ctrl+shift+f】快捷键打开函数框,在“分类”里面选择“改变屏幕分辨率.a7p”,单击【加载】按钮,选择altools.u32,加载里面的“alchangeres”函数,用同样方法,再加载“alhidetaskbar”、“alshowtaskbar”两个函数。 先说明一下这三个函数的作用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- authorware7 U32ODBC 使用