软件工程综合实践专题第一次作业
软件工程综合实践专题第一次作业
从网上找的一个小程序,用来实现窗口抖动(类似QQ的窗口抖动),下面是代码及解释:
#include <stdio.h>
#include <windows.h>
int main(int argc, char *argv[])
{
RECT rect; //RECT是一个矩形结构体,相当于保存了一个矩形的四条边的坐标
HWND hwnd = NULL,oldhwnd = NULL; //两个窗口句柄
int x,y,width,height; //用来保存窗口横纵坐标和宽度、高度的变量
int i;
for(i=0;i<50;i++)
{
hwnd = GetForegroundWindow(); //一个API函数,获取活动窗口的句柄
if(hwnd!=oldhwnd)
{
GetWindowRect(hwnd,&rect); //获取指定窗口的位置
x = rect.left;
y = rect.top;
width = rect.right - x;
height = rect.bottom - y;
oldhwnd = hwnd; //把刚刚获取的窗口句柄保存起来。
}
MoveWindow(hwnd,x-10,y,width,height,TRUE); //向左移动了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;
}
主要就是调用了windows中的几个API,包括获取句柄,移动位置等。窗口的抖动其实就是让一个窗口在几个位置停顿一小下然后来回切换,就会形成抖动效果!不过加上声音效果可能会更好,不然可能注意不到窗口抖动了。