全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实现在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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024新教材部编版选择性必修3 第3课古代西亚北非文化 教案
- 2024年上海市长宁区中考二模语文“渐入佳境”审题立意及范文
- 野外生存:传染病防治知识普及
- 高血压中医太极拳锻炼指南
- 食道异物与并发症的影像学诊断
- 恙虫病(传染病):工地防护措施
- 城市排水系统优化与改造
- 交通运输:传染病防控知识
- 春季预防传染病:幼儿园卫生保健
- 银行金融防疫:传染病应急演练
- MATLAB自学课件(完整)
- 2022高考英语全国卷I读后续写解题思路
- 父母与子女共同出资买房协议
- 天津市和平区2022-2023学年七年级下学期期末英语试卷(含答案)
- 生态文明-撑起美丽中国梦学习通课后章节答案期末考试题库2023年
- 上海建筑垃圾、工程渣土泥浆的处理费及标准
- 临床检验质量指标
- 中国电视艺术委员会公开招考8名工作人员模拟预测(共500题)笔试参考题库附答案详解
- 心血管疾病防治科普知识
- 采购物资监督检查方案模板
- 系统整体联动试车计划措施
评论
0/150
提交评论