实现在ppt演示过程中,用鼠标拖动图片_第1页
实现在ppt演示过程中,用鼠标拖动图片_第2页
实现在ppt演示过程中,用鼠标拖动图片_第3页
实现在ppt演示过程中,用鼠标拖动图片_第4页
实现在ppt演示过程中,用鼠标拖动图片_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现在PPT演示过程中,用鼠标拖动图片1新建一个PPT空白文档。2点击菜单“工具宏宏”,出现对话框。3对话框中“宏名”写DROP(其他也可以),再点“创建”,就进入代码模式。4“SUBDROP宏由番茄花园创建,日期201048。ENDSUB”,类似的三句全删掉。把下面的代码全拷贝进去。OPTIONEXPLICITDECLAREFUNCTIONGETKEYSTATELIB“USER32“BYVALNVIRTKEYASLONGASINTEGERPRIVATEDECLAREFUNCTIONWINDOWFROMPOINTLIB“USER32“BYVALXPOINTASLONG,BYVALYPOINTASLONGASLONGPRIVATEDECLAREFUNCTIONGETWINDOWRECTLIB“USER32“BYVALHWNDASLONG,LPRECTASRECTASLONGPRIVATEDECLAREFUNCTIONGETCURSORPOSLIB“USER32“LPPOINTASPOINTAPIASLONGPRIVATEDECLAREFUNCTIONSETCURSORPOSLIB“USER32“BYVALXASLONG,BYVALYASLONGASLONGPUBLICDECLAREFUNCTIONMONITORFROMPOINTLIB“USER32DLL“BYVALXASLONG,BYVALYASLONG,BYVALDWFLAGSASLONGASLONGPRIVATEDECLAREFUNCTIONGETSYSTEMMETRICSLIB“USER32“BYVALNINDEXASLONGASLONGPRIVATECONSTSM_SCREENX0PRIVATECONSTSM_SCREENY1PRIVATECONSTSIGPROC“DRAGDROP“PUBLICCONSTVK_SHIFTH10PUBLICCONSTVK_CTRLH11PUBLICCONSTVK_ALTH12PRIVATETYPEPOINTAPIXASLONGYASLONGENDTYPEPUBLICTYPERECTLEFTASLONGTOPASLONGRIGHTASLONGBOTTOMASLONGENDTYPEPUBLICMPOINTASPOINTAPI,DPOINTASPOINTAPIPUBLICACTIVESHAPEASSHAPEDIMDRAGMODEASBOOLEANDIMDXASDOUBLE,DYASDOUBLESUBDRAGANDDROPSHASSHAPEDRAGMODENOTDRAGMODEIFDRAGMODETHENDRAGSHENDSUBPRIVATESUBDRAGSHASSHAPEDIMIASINTEGER,SXASINTEGER,SYASINTEGERDIMMWNDASLONG,WRASRECTDXGETSYSTEMMETRICSSM_SCREENXDPOINTXDXDYGETSYSTEMMETRICSSM_SCREENYDPOINTYDYGETCURSORPOSMPOINTWITHACTIVEPRESENTATIONSLIDESHOWWINDOWMWNDWINDOWFROMPOINTMPOINTX,MPOINTYGETWINDOWRECTMWND,WRSXWRLEFTSYWRTOPDXWRRIGHTWRLEFT/ACTIVEPRESENTATIONPAGESETUPSLIDEWIDTHDYWRBOTTOMWRTOP/ACTIVEPRESENTATIONPAGESETUPSLIDEHEIGHTENDWITHIFDXDYTHENSXSXDXDYACTIVEPRESENTATIONPAGESETUPSLIDEWIDTH/2DXDYENDIFIFDYDXTHENSYSYDYDXACTIVEPRESENTATIONPAGESETUPSLIDEHEIGHT/2DYDXENDIFWHILEDRAGMODEGETCURSORPOSMPOINTSHLEFTMPOINTXSX/DXSHWIDTH/2SHTOPMPOINTYSY/DYSHHEIGHT/2DOEVENTSII1IFI2000THENDRAGMODEFALSEEXITSUBWENDENDSUB5点击保存后,关闭代码模式,回到PPT设计页面。在你需要拖动的图片上点右键,选择“动作设置单击鼠标运行宏确定”。然后就看效果吧。OPTIONEXPLICIT声明模块中将要使用的WIN32的API函数PRIVATEDECLAREFUNCTIONGETDCLIB“USER32“BYVALHWNDASLONGASLONGPRIVATEDECLAREFUNCTIONRELEASEDCLIB“USER32“_BYVALHWNDASLONG,_BYVALHDCASLONGASLONGPRIVATEDECLAREFUNCTIONGETDEVICECAPSLIB“GDI32“_BYVALHDCASLONG,_BYVALNINDEXASLONGASLONGPRIVATEDECLAREFUNCTIONSETTIMERLIB“USER32“_BYVALHWNDASLONG,_BYVALNIDEVENTASLONG,_BYVALUELAPSEASLONG,_BYVALLPTIMERFUNCASLONGASLONGPRIVATEDECLAREFUNCTIONKILLTIMERLIB“USER32“_BYVALHWNDASLONG,_BYVALNIDEVENTASLONGASLONGPRIVATEDECLAREFUNCTIONGETCURSORPOSLIB“USER32“LPPOINTASPOINTASLONG声明POINT类型,将用来定义存储位置坐标的变量TYPEPOINTXASLONGYASLONGENDTYPE定义函数及过程中要使用的常量PRIVATECONSTLOGPIXELSX88让GETDEVICECAPS函数返回像素/逻辑英寸(水平)PRIVATECONSTLOGPIXELSY90让GETDEVICECAPS函数返回像素/逻辑英寸(垂直)PRIVATECONSTTWIPSPERINCH1440每英寸约等于1440TWIP(缇)定义相关变量PRIVATEXPIXELSPERINCHASLONG存储每逻辑英寸对应的水平像素点数PRIVATEYPIXELSPERINCHASLONG存储每逻辑英寸对应的水平像素点数PRIVATERATIOASSINGLE存储窗口或屏幕的缩放比率PRIVATEMOVINGASBOOLEAN存储判断移动是否正在进行的标志PRIVATEDRAGSHPASSHAPE存储被拖移的形状对象PRIVATETIMERIDASLONG存储计时器标识符PRIVATEORIGSHPLEFTASSINGLE存储形状被拖动前的水平坐标PRIVATEORIGSHPTOPASSINGLE存储形状被拖动前的垂直坐标PRIVATEORIGMOUSELOCATIONASPOINT存储鼠标点击形并开始拖动形状时的坐标点定义移动形状的过程SUBMOVESHAPEBYVALSHPASSHAPEDIMHDCASLONG定义用于存储设备场景的变量ONERRORRESUMENEXTIFSLIDESHOWWINDOWSCOUNT0THEN只有当幻灯片放映时才进行处理IFMOVINGTHEN如果MOVING为TRUE则停止移动ENDMOVESHAPEELSEMOVING为FALSE则让形状跟随鼠标移动HDCGETDC0获取整个屏幕的设备场景(程序窗口外),DC即DEVICECONTEXT。XPIXELSPERINCHGETDEVICECAPSHDC,LOGPIXELSX取得每逻辑英寸对应的水平像素点数YPIXELSPERINCHGETDEVICECAPSHDC,LOGPIXELSY取得每逻辑英寸对应的垂直像素点数RELEASEDC0,HDC释放整个屏幕的设备场景RATIOSHPPARENTPARENTSLIDESHOWWINDOWVIEWZOOM/100取得放映窗口的缩放比率SETDRAGSHPSHP获取当前将要被拖动的形状ORIGSHPLEFTSHPLEFT保存形状的初始水平坐标ORIGSHPTOPSHPTOP保存形状的初始垂直坐标GETCURSORPOSORIGMOUSELOCATION获取鼠标的当前位置STARTTIMER调用启动计时器的过程MOVINGTRUE设置移动正在进行的标志为TRUEENDIFENDIFENDSUB定义结束形状移动的过程SUBENDMOVESHAPEONERRORRESUMENEXTMOVINGFALSE设置移动正在进行的标志为FALSESTOPTIMER终止计时器SETDRAGSHPNOTHING清除定义的对象变量ENDSUB启动计时器的过程PRIVATESUBSTARTTIMERONERRORRESUMENEXT启动计时器,并调用TIMERPROC过程来实现形状对鼠标的跟随TIMERIDSETTIMER0,0,10,ADDRESSOFTIMERPROCENDSUB停止计时器的过程PRIVATESUBSTOPTIMERONERRORRESUMENEXTKILLTIMER0,TIMERID销毁计时器,释放系统资源ENDSUB在计时器过程中被调用来处理鼠标位置及移动形状的过程PRIVATESUBTIMERPROCBYVALHWNDASLONG,_BYVALUMSGASLONG,_BYVALWPARAMASLONG,_BYVALLPARAMASLONGDIMCURMOUSELOCATIONASPOINT存储鼠标的当前位置DIMDELTAXASSINGLE存储鼠标水平移动的距离DIMDELTAYASSINGLE存储鼠标垂直移动的距离ONERRORRESUMENEXTIFMOVINGTHEN移动正在进行的标志为真时进行处理GETCURSORPOSCURMOUSELOCATION获取鼠标的当前坐标DELTAXCURMOUSELOCATIONXORIGMOUSELOCATIONX_TWIPSPERINCH/20/XPIXELSPERI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论