C語言仿QQ聊天界面抖動功能
本文實例為大家分享了C語言 QQ聊天界面抖動的具體代碼,供大家參考,具體內(nèi)容如下

圖片中的窗口抖動功能大家應(yīng)該都用過,今天給大家?guī)淼木褪怯肅來實現(xiàn)類似QQ窗口抖動的小練習(xí),其實窗口的抖動的原理就是讓它在不同的幾個位置停頓一小下然后再來回移動,我們先來看代碼,稍后再進(jìn)行解釋。
#include <stdio.h>
#include<Windows.h>
int main(void)
{
int time = 60; //休眠的時間,為60毫秒
int distance = 10; //移動了10像素
RECT rect; //RECT是一個矩形結(jié)構(gòu)體,相當(dāng)于保存了一個矩形的四條邊的坐標(biāo)
HWND window = NULL, oldwindow = NULL; //兩個窗口句柄
int x, y, width, height; //用來保存窗口橫縱坐標(biāo)和寬度、高度的變量
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); //休眠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;
}
原理上面講了,無非就兩點:停頓和移動,那我們來講一下二者的具體實現(xiàn),關(guān)于停頓我們用到了sleep函數(shù),這里有一點簡單提一下,sleep函數(shù)在windows和linux中是不一樣的,除了頭文件以外,windows中單位為毫秒且S要大寫,而linux中為秒,我們這里默認(rèn)的是windows中,就相當(dāng)于調(diào)用了windows API函數(shù),這就形成了停頓的效果!而窗口的移動同樣還是調(diào)用windows中的API,包括獲取句柄,移動位置等??傮w來說抖動功能的實現(xiàn)思路是比較簡單的。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
舉例剖析C++中引用的本質(zhì)及引用作函數(shù)參數(shù)的使用
這篇文章主要介紹了C++中引用的本質(zhì)及引用作函數(shù)參數(shù)的使用,講解了函數(shù)返回值是引用的情況等一些難點,需要的朋友可以參考下2016-03-03
typedef_struct與struct之間的區(qū)別
本篇文章主要是對typedef struct與struct之間的區(qū)別進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
C語言中全局?jǐn)?shù)組和局部數(shù)組的問題
今天同學(xué)遇到一個在C語言中全局?jǐn)?shù)組和局部數(shù)組的問題,卡了許久,我也沒有第一時間看出問題,現(xiàn)在把問題梳理一下,并給出解決方案,需要的朋友可以參考下2012-12-12
C++?Qt開發(fā)之使用QNetworkAccessManager實現(xiàn)Web網(wǎng)頁訪問
Qt?是一個跨平臺C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺窗體應(yīng)用程序,本文主要介紹了如何運用QNetworkAccessManager組件實現(xiàn)Web網(wǎng)頁訪問,需要的可以參考下2024-03-03
STL priority_queue(優(yōu)先隊列)詳解
這篇文章主要介紹了 STL priority_queue(優(yōu)先隊列)詳解的相關(guān)資料,需要的朋友可以參考下2016-10-10

