QQ中抖动窗口的实现方法

其实,QQ中抖动窗口的实现很简单,当用户按下抖动按钮的时候,播放一个WAV文件和按一定的顺序移动窗口就完了。。下面让我们来看一下具体的实现方法:


创建对话框应用程序,向对话框中添加一个按钮。讲按钮Caption改为:抖动窗口;然后双击按钮,为按钮添加BN_CLICK消息,在消息函数中我们会用到PlaySound这个SDK函数,用来播放WAV文件,也就是播放一段声音,该函数的第一个参数为 pszSound,表示文件的名称,当然你要把你的WAV文件添加到该工程的目录下,不然系统会找不到文件,当这个参数设置为NULL时,停止播放,该函数只能播放较小的WAV文件,对于这个函数的具体用法大家可以参考MSDN, 使用PlaySound函数时需要在#include后面加上(注意:不能加在前面):
  #include
  #pragma comment(lib, "WINMM.LIB") 

具体做法如下:
void CTestDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
CRect rect;
GetWindowRect(&rect);
int m_move=10;
PlaySound("shake.wav",NULL,SND_FILENAME | SND_ASYNC);
//为了使窗口抖动后能回到原来的位置,这里设置i必须为5的倍数并且i<5*n+1;
for(int i=1;i<11;i++)
{
rect.OffsetRect(0,m_move);// OffsetRect函数将指定的矩形移动到指定的位置,这里是将矩形向下移动10像素   两个参数为横向移和竖向移
MoveWindow(&rect);
Sleep(40);
rect.OffsetRect(m_move,0);
MoveWindow(&rect);
Sleep(40);
if (10==m_move)
{
m_move=-10;
}
else
{
m_move=10;
}
}
}


转载来源:http://blog.sina.com.cn/s/blog_82df6ed4010160gh.html



你可能感兴趣的:(MFC)