Duilib实现QQ聊天窗口晃动

转载:http://blog.csdn.net/arbboter/article/details/26282717

转载:http://blog.csdn.net/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 }
原文地址:https://www.cnblogs.com/chechen/p/6062310.html