CVisualEffect





3.00/5 (17投票s)
2004年5月17日
1分钟阅读

64630

1834
一个从 CStatic 派生的类,用于在图像上显示一些视觉效果。
引言
在本文中,我想向您展示一种创建简单视觉效果的方法。我使用一些图像处理技术和一个非常有用的库,名为 CImg,由 David Tschumperlé 编写,来创建这个 CStatic
派生的有趣控件。
如何使用
首先,将以下文件添加到您的项目中:VisualEffect.h、VisualEffect.cpp、CImg.h 和 CImg.cpp。 创建图像的大部分工作都在 CImg.h 头文件中完成。 在 VisualEffect.h 中,定义了两个类:CVisualEffect
和 CImgDisplayEx
(CImgDisplay
的扩展版本,用于将其适配到我们的 CStatic
派生类:CVisualEffect
)。
在对话框资源编辑器中,添加一个新的静态控件,并将它的 ID 从 IDC_STATIC
重命名为 IDC_VISUAL_EFFECT
。 参见图 2 以获取更多信息。
运行类向导,将新的成员变量分配给您的对话框,类型为 CVisualEffect
(图 3)。
如果类向导无法识别 CVisualEffect
类,请选择 CStatic
,然后将变量的类型从 CStatic
重命名为 CVisualEffect
。 请记住,您必须在对话框头文件的顶部添加 #include "VisualEffect.h"
。
CVisualEffect
类有两个重要的成员函数
void SetImage(CString FileName);
使用此成员函数设置要由类加载的图像。 类将在调用 DrawImage()
成员函数后显示效果图像。
void DrawImage();
此成员函数必须动态创建视觉效果图像,并借助线程显示它们。
CVisualEffect 类
CVisualEffect
是一个从 CStatic
派生的类,具有以下定义
class CVisualEffect : public CStatic { // Construction public: CVisualEffect(); void SetImage(CString FileName); void DrawImage(); // Attributes public: CImg<float> m_Original; CImgDisplayEx m_Display; // Implementation public: static UINT DrawThread(LPVOID pParam); virtual ~CVisualEffect(); // Generated message map functions protected: //{{AFX_MSG(CVisualEffect) //}}AFX_MSG DECLARE_MESSAGE_MAP() };
m_Display
是一个类型为 CImgDisplayEx
的成员变量。 此类设置一个目标窗口,用于快速图像处理。
尽情享用!