窗口抖动的实质其实是快速地移动窗口位置,封装为一个函数如下:
void ShakeWindow()
{
CRect rect;
GetWindowRect(&rect);
int m_move=10;//移动单位
//PlaySound("shake.wav",NULL,SND_FILENAME | SND_ASYNC);//播放抖动声音
/*
PlaySound函数用来播放WAV声音,该函数的第一个参数为pszSound,表示文件的名称
#include <mmsystem.h>
#pragma comment(lib, "WINMM.LIB")
*/
//为了使窗口抖动后能回到原来的位置,需要设置循环次数为2的倍数
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;
}
}
}