linux窗口移动抖动,QQ中抖动窗口的实现方法

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

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

#include

#pragma comment(lib, "WINMM.LIB")

我一般加在StdAfx.h中

............

#endif // _AFX_NO_AFXCMN_SUPPORT

#include

#pragma comment(lib, "WINMM.LIB")

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__39778E0E_D063_4583_AB54_F28AC0207700__INCLUDED_)

具体做法如下:

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;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值