大家想必都知道QQ聊天對(duì)話框中,有一個(gè)抖動(dòng)個(gè)功能,相信大家也都用過(guò),但能否用C語(yǔ)言做出來(lái)呢?
答案肯定是可以的! 至于如何,今天就為大家分享出來(lái)!
來(lái)吧,直接上代碼!
#include <stdio.h> #include <windows.h> int main(int argc, char *argv[]) { RECT rect; //RECT是一個(gè)矩形結(jié)構(gòu)體,相當(dāng)于保存了一個(gè)矩形的四條邊的坐標(biāo) HWND hwnd = NULL,oldhwnd = NULL; //兩個(gè)窗口句柄 int x,y,width,height; //用來(lái)保存窗口橫縱坐標(biāo)和寬度、高度的變量 int i; system("title C語(yǔ)言研究中心www.sztianhecheng.cn"); for(i=0;i<50;i++) { hwnd = GetForegroundWindow(); //一個(gè)API函數(shù),獲取活動(dòng)窗口的句柄 if(hwnd!=oldhwnd) { GetWindowRect(hwnd,&rect); //獲取指定窗口的位置 x = rect.left; y = rect.top; width = rect.right - x; height = rect.bottom - y; oldhwnd = hwnd; //把剛剛獲取的窗口句柄保存起來(lái)。 } MoveWindow(hwnd,x-10,y,width,height,TRUE); //向左移動(dòng)了10像素,下同 Sleep(5); //暫停5毫秒 MoveWindow(hwnd,x-10,y-10,width,height,TRUE); Sleep(5); MoveWindow(hwnd,x,y-10,width,height,TRUE); Sleep(5); MoveWindow(hwnd,x,y,width,height,TRUE); Sleep(5); } return 0; }
大家可以自行理解下代碼,主要就是調(diào)用了windows中的幾個(gè)API,包括獲取句柄,移動(dòng)位置等。
那么窗口的抖動(dòng)其實(shí)就是讓一個(gè)窗口在幾個(gè)位置停頓一小下然后來(lái)回切換,就會(huì)形成抖動(dòng)效果!僅此而已
怎么樣,大家看懂了嗎?
有問(wèn)題隨時(shí)留言
C語(yǔ)言研究中心www.sztianhecheng.cn