Duilib实现QQ聊天窗口晃动

本文介绍了一种在Windows平台上实现窗口抖动效果的方法。通过调整窗口位置来模拟抖动,适用于对话框或其他需要吸引用户注意的场景。代码使用了Windows API函数如GetWindowRect和SetWindowPos。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:http://blog.youkuaiyun.com/arbboter/article/details/26282717

转载:http://blog.youkuaiyun.com/zerolusta/article/details/5857191

 

点击抖动函数:

 1 void Shake()
 2 {
 3     int ty=3;
 4     int nFre = 30;
 5     RECT   m_rect;   
 6     GetWindowRect(this->m_hWnd, &m_rect);  
 7     int recordy=m_rect.left;
 8     int recordx=m_rect.top;
 9 
10     for(int i=0;i<3;i++)
11     {
12         m_rect.left=recordy;
13         m_rect.top=recordx;
14         m_rect.top = m_rect.top + ty;  
15         m_rect.left = m_rect.left - ty;
16         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
17         Sleep(nFre);
18         m_rect.top = m_rect.top -ty;
19         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
20         Sleep(nFre);
21         m_rect.top = m_rect.top -2*ty;
22         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
23         Sleep(nFre);
24         m_rect.left=m_rect.left+ty;
25         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
26         Sleep(nFre);
27         m_rect.left=m_rect.left+2*ty;
28         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
29         Sleep(nFre);
30         m_rect.top = m_rect.top + ty;  
31         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
32         Sleep(nFre);
33         m_rect.top=m_rect.top+2*ty;
34         SetWindowPos(this->m_hWnd, NULL,m_rect.left,m_rect.top,0,0,SWP_NOSIZE );
35         SetWindowPos(this->m_hWnd, NULL,recordy,recordx,0,0,SWP_NOSIZE );
36         Sleep(nFre);
37     }
38 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值