QQ窗口Z字抖動如何實現?編程實現QQ窗口抖動,C語言專題解析

前言

QQ窗口Z字抖動如何實現?編程實現QQ窗口抖動,C語言專題解析

QQ的窗口抖動功能我想大家應該使用過,今天給大家帶來的就是用C結合windoww API來實現類似QQ窗口抖動的小知識,其實窗口的抖動的原理就是讓它在不同的幾個位置停頓一小下然後再來回移動.

源碼

<code>#include <stdio.h>
#include<windows.h>
int main(void)
{

int time = 60; //休眠的時間,為60毫秒
int distance = 10; //移動了10像素
RECT rect; //RECT是一個矩形結構體,相當於保存了一個矩形的四條邊的座標
HWND window = NULL, oldwindow = NULL; //兩個窗口句柄
int x, y, width, height; //用來保存窗口橫縱座標和寬度、高度的變量
int i;
//抖50次吧
for (i = 0; i < 10; i++) {
window = GetForegroundWindow(); //拿到活動窗口
if (window != oldwindow) {
//獲取指定窗口的位置
GetWindowRect(window, &rect);
x = rect.left;
y = rect.top;
width = rect.right - x;
height = rect.bottom - y;
oldwindow = window;
}
MoveWindow(window, x - distance, y, width, height, TRUE); //移動窗口,向左移動了10像素,下同
Sleep(time); \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t //休眠time毫秒,線程休眠
MoveWindow(window, x - distance, y -distance, width, height, TRUE);

Sleep(time);
MoveWindow(window, x, y - distance, width, height, TRUE);
Sleep(time);
MoveWindow(window, x, y, width, height, TRUE);
Sleep(time);
}
return 0;
}/<windows.h>/<stdio.h>/<code>

原理解析

QQ窗口Z字抖動如何實現?編程實現QQ窗口抖動,C語言專題解析

原理無非就兩點:停頓和移動,那我們來講一下二者的具體實現,關於停頓我們用到了sleep函數,這裡有一點簡單提一下,sleep函數在windows和linux中是不一樣的,除了頭文件以外,windows中單位為毫秒且S要大寫,而linux中為秒,我們這裡默認的是windows中,就相當於調用了windows API函數,這就形成了停頓的效果!而窗口的移動同樣還是調用windows中的API,包括獲取句柄,移動位置等。總體來說抖動功能的實現思路是比較簡單的的,代碼量也不大,有興趣的可以自己嘗試一下。

尾言

QQ窗口Z字抖動如何實現?編程實現QQ窗口抖動,C語言專題解析

文章都是手打原創,每天最淺顯的介紹C語言、C++,windows知識,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。如果足下基礎比較差,不妨關注下人人都可以學習的視頻教程

通俗易懂,深入淺出,一個視頻只講一個知識點。視頻不深奧,不需要鑽研,在公交、在地鐵、在廁所都可以觀看,隨時隨地漲姿勢


分享到:


相關文章: