65.9K
CodeProject 正在变化。 阅读更多。
Home

CFadeStatic

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.22/5 (6投票s)

2009年7月13日

CPOL

2分钟阅读

viewsIcon

31133

downloadIcon

1530

一个基于 CStatic 类的派生类,为您的图片控件添加渐入/渐出效果。

引言

这个 MFC CStatic 派生类将在您的 MFC 项目中的图片控件中添加渐入/渐出效果。

背景

在编写 Cool FX 包装器 之后,我想使用相同的代码结构编写另一个简单的 MFC 自定义控件,这就是结果。

使用代码

要使用 CFadeStatic 类,您可以按照以下步骤操作:

  1. 提取 FadeStatic_src.zip 中的所有文件,并将它们复制到您的 MFC 项目目录中,然后将它们添加到您的项目中。
  2. 在您想要使用 CFadeStatic 的源文件中添加以下包含语句:
  3. #include "FadeStatic.h" 
  4. 对于资源编辑器窗口中您想要应用渐变效果的图片控件,使用类向导为其声明一个控件类型变量,并将类从 CStatic 更改为 CFadeStatic
  5. 完成了,构建您的应用程序并查看酷炫效果。

您也可以在运行时创建 CFadeStatic(虽然我实在想不出您需要在运行时创建的条件;);以下摘录自演示代码,展示了如何操作:

stcCodeprojectRuntime.Create(_T(""), WS_CHILD | WS_VISIBLE, ctrlRect, this);
m_runtimeBmp.LoadBitmap(IDB_CODEPROJECT_HIGH_COLOR);
stcCodeprojectRuntime.SetBitmap(m_runtimeBmp);

您所要做的就是使用 Create() 函数创建控件,然后使用 SetBitmap() 函数设置位图。SetBitmap() 函数在 CFadeStatic 中被重载,并将执行 FX 初始化。

所有渐入/渐出动画效果参数都可以在 CFadeStatic 类的构造函数中设置。“噪点”效果只是为了在渐入/渐出期间添加一些随机点。

关注点

渐变效果是通过创建两个内存 DC 来实现的:一个用于背景,一个用于前景位图。然后,前景位图 DC 被 AlphaBlend() 到背景 DC;生成的位图 DC 然后被 BitBlt() 到控件的绘制 DC。

历史

  • 2009-07-14:初始发布。
© . All rights reserved.