WindowAnima

百叶窗(Horz) 融化(左) 擦(绿色) Scatter4 SlideVanish Scatter6 球场 有没有厌烦过最小化,最大化恢复windows ?曾经想要的 抓住用户的注意力,让他们注意到一个应用程序 一些特别的东西。曾经想要做一个真正的隐形程序 滑入背景。有了CWindowAnima类你就可以了 动画的外观和窗口消失的方式略有不同 从规范。一共有十二种效果,其中六种是“消失”。 效果和六种相反的“外观”效果。它们包括 这些动词均有“不定式,不定式,不定式,不定式”之意。 重新组装4,重新组装6,然后显示幻灯片。 更重要的是,这些效果可以做的按钮,对话框和任何东西 否则就是CWnd导数。示例项目(如上所示)进行了演示 所有12个效果在一个简单的对话框。该项目还包括一个 爆炸按钮(使用散射效果),但我没有包括 屏幕截图,所以我猜你必须下载这个项目才能看到 它!,) CWindowAnima的工作原理是同时捕捉屏幕和窗口的图像 以及窗口的动画图像。有一个全面的清单 类中包含的函数和几个标志和选项 这需要解释,所以不需要举几个例子。 下面的代码直接从示例项目中提取,但是我将 在这里复制一下。这一页再往下你会找到a 很少注意,参数的不同效果(因为哪里是 如果你不能稍微调整它来适应你的需要)和一个总结 公共功能。如果你成功地通过了这一切,你就会得到回报 带有到项目文件和源代码的链接。 例子#1 -融化&UnMelting 隐藏,复制Code

// set the window for animation and specify that it should // not draw over the task bar
CWindowAnima wa(this, WA_KEEP_TASKBAR_ONTOP);

// melt the window to the left side of the screen,
// using 6 segments and stagger each segment 80 pixels
wa.Melt(WA_LEFT,6,80); // wait 3 secs Sleep(3000); // move the window to a new position
wa.MoveWindowPosition(600,400);

// Unmelt the window using the default (WA_AUTO) which unmelts
// the window from the side of the screen closest to the
// top-left corner of the window
wa.UnMelt();

例子#2 - SlideVanish &SlideAppear 隐藏,收缩,复制Code

// create the animation object but specify that 
// it should not draw over the task bar 
CWindowAnima WA(this,WA_KEEP_TASKBAR_ONTOP); 
   
// slide the window out of view
wa.SlideVanish();

// sleep for three seconds
Sleep(3000);

// skip window capture and do not restore window nor image behind the
// window when a &"restoring&" animation is performed
wa.FlagSet(WA_WND_SKIPCAPTURE|WA_WND_SKIPRESTORE);

// replace the window with the image whose resource ID is &"IDB_HOUSE&"
wa.ReplaceWindowImage(IDB_HOUSE);

// slide our window into view, except now it's the image IDB_HOUSE.
// Also, don't restore the window until we're specifically told to.
wa.SlideAppear();

// wait 2 secs
Sleep(2000);

// called like this, Restores the window irrespective of the
// WA_WND_SKIPRESTORE flag.
wa.RestoreWindow();

例子#3 -盲人截断符号 隐藏,复制Code

// Create the object using the default constructor
CWindowAnima WA;

// sets the window for animation to be this dialog window
wa.SetWindow(this);

// Blind the window into invisibility using horizontal blinds
wa.Blind(WA_HORZ);

// Sleep for a second
Sleep(1000);

// Blind the window into visibility using the default // vertical blinds wa.UnBlind();

作者的笔记 关于这门课有几点要说。首先,它应该 (必须为任何可能发生的事情做好准备) 工作在任何CWnd衍生物,可能最好只是动画相对 小对话框和按钮或至少给用户的机会 窗口是否有动画。基本上,大窗户会缓慢地爬行 在你的屏幕周围,用户会感到无聊,然后烦恼。 其次,如果你发现窗户有时会被弄脏 屏幕上。也就是说,动画中的旧图像不会被覆盖 在隐藏窗口()函数,因为它可能有帮助。 第三,是否有人可以提供一些代码来做一些快速的图像旋转 如果能有一两个新的效果,我会很感激的。 差不多就这些了,尽情享受吧! 影响函数参数 动画 效果 函数 参数 盲目的,截断符号 参数名称 默认值 nDirection WA_VERT nSegments 8 nGapFactor 4 nSleeptime One hundred. 融化,UnMelt 参数名称 默认值 nDirection WA_AUTO nSegments 6 nStagger 40 nSleeptime 1 擦,UnWipe 参数名称 默认值 nDirection WA_RAND nWipeFactor 4 nSleeptime 20. Scatter4,ReAssemble4 Scatter6,ReAssemble6 参数名称 默认值 nDistance 90 nMoveFactor 4 nSleeptime 1 SlideVanish,SlideAppear 参数名称 默认值 nSlideFactor 1 nScaleFactor 15 nSlideDelay 10 nVanishDelay 0 公共功能摘要 CWindowAnima () 是CWindowAnima对象的两个构造函数。默认构造函数采用 以这种方式创建的任何参数和对象之前都不需要调用SetWindow() 任何动画都完成了。第二个构造函数获取一个指向CWnd的指针 对象或导数作为第一个参数,任何标志作为第二个参数 参数。在内部,构造函数调用FlagSet()和SetWindow() 这个顺序。FlagSet()设置 使用nFlags参数标记成员变量。返回当前状态 的旗帜。FlagUnset()附件 带有nFlags参数的flags成员变量。返回当前 旗帜的状态FlagIsSet() 返回真 或FALSE,这取决于是否设置了标志或一组标志。 CopyWindowCapture()抓住 另一个CWindowAnima对象已经到达的窗口的副本 捕获的麻烦。还要确保(在调试模式下)有些傻瓜不会这样做 传递给我们一个指向没有窗口图像的CWindowAnima对象的指针。CopyScreenCapture()抓住 另一个CWindowAnima对象已经到达的屏幕的副本 捕获的麻烦。还要确保(在调试模式下)有些傻瓜不会这样做 传递给我们一个指向没有屏幕图像的CWindowAnima对象的指针。ReplaceWindowImage () 替换 一个窗口的图像和大小使用一个图像资源ID。如果你想要有用 将图像未被激活的窗口初始外观动画化 之前捕获。此函数重载,用户也可以选择 将窗口的图像和大小替换为CDC中包含的图像 对象。 SetClippingRegion()集 动画的剪切区域矩形并更新屏幕尺寸。 接受一个CRect对象作为输入参数或四个整数 描述一个边界框。GetClippingRegion()返回 当前剪辑区域和类对屏幕大小的想法 是多少。剪切区域和屏幕大小在内部设置为相同的值。SetWindow()集 该窗口将被动画化并捕捉该窗口的图像。断言(在 如果作为参数给出的窗口是空的。GetWindow()返回 一个指向对象初始化时存储的窗口的指针 在构造函数中或在调用SetWindow函数时。GetWindowRect()副本 将窗口的边框传入传入的空CRect结构中 它是一个参数。MoveWindowPosition()复位 将窗口动画到由x和y整数指定的新坐标 并更新任何跟踪窗口位置的内部变量。仅仅显示窗口() 在内部窗口上调用CWnd函数ShowWindow(SW_SHOW) 指针。RestoreWindow()恢复 窗口的适当背景和窗口的适当位置。 在内部调用RestoreWindow(),并将其参数设置为FALSE 它将检查WA_KEEP_WINDOW_HIDDEN、WA_KEEP_BKGRND_HIDDEN或WA_WND_SKIPRESTORE 标志(有关这些标志的更多信息,请参阅标志部分 做)。不带参数从外部调用RestoreWindow()将导致 函数使用默认值TRUE作为参数,因此忽略 任何标志的值。它假定用户的唯一原因 会显式调用这个函数是为了恢复一个窗口吗 标记被设置为什么。动画 盲目()创建的函数 百叶窗消失在窗户上的效果。有两种效应, 垂直百叶窗或水平百叶窗。使用WA_VERT或WA_HORZ方向 值来选择所需的效果. 截断符号() 创建一个窗帘 出现影响窗口。这类似于,“Blinding&” 上面描述的效果和可能的方向值是相同的。 湿巾擦拭() 被遗忘的窗口。擦动画的类型取决于方向 值传递给它。有效的方向WA_LEFT、WA_RIGHT WA_UP, WA_DOWN, WA_HORZ、WA_VERT WA_RAND(默认),WA_AUTO。UnWipes UnWipe () 存在的窗口。Unwipe动画的类型决定的方向 给定的值。有效的方向是相同的,“Wiping&” 上面的动画。融化()融化 屏幕上的窗口。对是窗户的方向将会融化 依赖于给定方向值。有效的方向该动画 WA_LEFT、WA_RIGHT WA_UP、WA_DOWN WA_RAND, WA_AUTO(默认)。UnMelts UnMelt () 窗口在屏幕上。将unmelt屏幕边缘的窗口 从依赖于方向值。有效的方向 相同的,“Melting&”动画。Scatter4()分裂 窗口分为四个独立的矩形和发送每个部分飞走 从窗口的中心点ReAssemble4 () 4 独立的部分的一个窗口中心点从不同的方向飞 在他们加入一个完整的窗口。Scatter6()分裂 窗口到六个单独的矩形并将每个部分飞走 从窗口的中心点ReAssemble6()六个单独的 一个窗口的部分从不同的方向飞到一个中央位置 他们加入一个完整的窗口。SlideVanish()两个分区 水平滑动窗口下面远离彼此。窗口 然后消失在黑色无效,最后分区关闭起来 离开屏幕完好-窗口。SlideAppear()两个分区 水平距离彼此开放陷入黑色的空白。缩放 无效的窗口。分区然后关闭滑动 现在一起再次背后的窗口是完全可见的。旗帜WA_SCR_SKIPCAPTURE每次 CWindowAnima对象执行一个动画它捕获的面积 屏幕剪切区域内。通过设置这个标志动画 当它执行不捕捉屏幕。您可以使用这个如果你复制 从另一个CWindowAnima屏幕图像对象或其他窗口 消失,出现在一个非常短的时间内和屏幕的外观 在此期间不太可能改变。WA_WND_SKIPCAPTURE当 CWindowAnima对象初始化它试图捕获窗口的一个映像 动画。通过设置这个标志CWindowAnima不会捕捉屏幕 的形象。重要的设置这个标志如果你要激活的窗口 是无形的,当你初始化CWindowAnima对象或当你 对象之间复制的形象窗口。WA_WND_SKIPRESTORE通过设置 这个标志的窗口将不会恢复视图后,“appearing&” 效果如截断符号,UnMelt、SlideAppear UnWipe, ReAssemble4或ReAssemble6。 这个标志覆盖的WA_KEEP_WINDOW_HIDDEN,WA_KEEP_BKGRND_HIDDEN 旗帜。WA_KEEP_WINDOW_HIDDEN 通常当一个 ,“appearing&”效应完成执行正确的窗口 背景是打印在屏幕上,然后真正的窗口是集 可见。通过设置这个标志正确的窗口背景画 在屏幕上但窗口不可见。要么RestoreWindow的电话 或显示窗口。 WA_KEEP_BKGRND_HIDDEN通常 当一个和“appearing&”效应完成执行正确的 窗口背景打印在屏幕上,然后真正的窗口 设置为可见。通过设置这个标志窗口是可见的,但 窗口背景从来没有绘制到屏幕上。这通常会导致 有一个形象的窗口而不是卡背后真正的窗口 正确的背景。调用RestoreWindow需要纠正的问题。WA_KEEP_TASKBAR_ONTOP 设置这个标志 调整剪切区域排除Windows任务栏。当这个 标志设置动画似乎会出现和消失 任务栏而不是默认的Windows任务栏就是动画。 WA_SKIPHIDEONCAPTURE当一个 动画捕捉屏幕,它调用窗口的CWnd显示窗口() 函数与SW_HIDE参数。设置这个标志可以确保 窗口不是隐藏在屏幕上捕获执行。方向:左,右,上,下,下 熔化,不熔化,抹去&;UnWipe效果导致动画执行 在一个随机的方向。WA_AUTO在 融化,不熔化效果导致窗口向或不熔化 屏幕最靠近窗口左上角的一侧。 本文转载于:http://www.diyabc.com/frontweb/news12169.html

posted @ 2020-08-11 09:25  Dincat  阅读(189)  评论(0编辑  收藏  举报