博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC的水波效果
阅读量:6413 次
发布时间:2019-06-23

本文共 1291 字,大约阅读时间需要 4 分钟。

下载地址:http://files.cnblogs.com/rogee/WaveObject.rar

一直很羡慕那些有水波效果的程序,可是无奈我水平差劲。自己写不出来,好不容易见一好友发的程序上有这特效边向他索要源码,才得知那是Delphi的一个控件,由于本人对Delphi实在不通,所以很是遗憾。

          忽然想起,曾经在老罗的站点上看到过这样的汇编代码,因此对它有了“不轨之心”,今天在网上参考了好多资料终于将它编译成了一个Lib,写了一个对应的头文件,哈哈,以后我的程序上也可以有这样的特效了。
          这里我给出我改写的ASM源文件以及Rasm的工程文件和编译后的Lib及.h文件,希望大家喜欢。

具体的用法如下:

             1、先加载这个库文件

#include "./WaveObject/WaveObject.h"#pragma comment(lib, "./WaveObject/WaveObject.lib")

2、通过查看原先的汇编代码我们可以知道,这个库需要先用_WaveInit()初始化。然后在相应的消息函数中调用相应的特效函数就可以了。因此我们根据_WaveInit()的参数来声明两个变量。

WAVE_OBJECT m_WaveObject;HBITMAP         m_hBitmap;

初始化代码如下:

m_hBitmap = LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));        //这里是载入的图片资源     _WaveInit(&m_WaveObject,GetDlgItem(IDC_STATIC1)->GetSafeHwnd(),m_hBitmap,30,0);    //IDC_STATIC1 是MFC的图片控件ID     _WaveEffect(&m_WaveObject,1,4,2,180);    // 随便的使用一个特效,具体参数含义见头文件。

添加单击效果的响应

void CBesUnpackDlg::OnLButtonDown(UINT nFlags, CPoint point) {     ClientToScreen(&point);     GetDlgItem(IDC_STATIC1)->ScreenToClient(&point);     _WaveDropStone(&m_WaveObject,point.x,point.y,2,256);     CDialog::OnLButtonDown(nFlags, point);}至
于那个右键切换效果自己琢磨吧,嘿嘿

退出销毁对象的代码如下:

void CBesUnpackDlg::OnClose() {     _WaveFree(&m_WaveObject);    // 释放水波对象     CDialog::OnClose();}

转载于:https://www.cnblogs.com/rogee/archive/2011/04/02/2003940.html

你可能感兴趣的文章
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>
linux centos7.2 安装mysq,nginx,php
查看>>
myrocks之事务处理
查看>>
基于pgrouting的路径规划之一
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>
送给即将踏入软考征途的你
查看>>
要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
查看>>
javascript实现音频mp3播放
查看>>
html5-离线缓存
查看>>
linux系统安装完后的常见工作
查看>>
在Linux服务器、客户端中构建密钥对验证进行远程连接
查看>>
揪出MySQL磁盘消耗迅猛的真凶
查看>>
和“C”的再遇
查看>>
一键安装kubernetes 1.13.0 集群
查看>>