天霸动霸tua 发表于 2018-2-7 15:16

【笔记】用 C语言实现窗口抖动

本帖最后由 天霸动霸tua 于 2018-2-7 15:30 编辑

大家一定都知道qq窗口有个抖动按钮,其实我们自己用C语言也可以实现这个效果,话不多说,上源码


#include <stdio.h>
#include <windows.h>
int main(){
      int shake_time = 5; //休眠的时间,为5毫秒
      int shake_distance = 10; //移动了10像素
      RECT rect; //RECT是一个矩形结构体,相当于保存了一个矩形的四条边的坐标
      HWND window = NULL,oldwindow = NULL; //两个窗口句柄
      int x,y,width,height; //用来保存窗口横纵坐标和宽度、高度的变量
      int i;
      //抖50次吧
      for(i = 0 ; i < 50 ; 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-shake_distance,y,width,height,TRUE); //移动窗口,向左移动了10像素,下同
                Sleep(shake_time);//休眠time毫秒,线程休眠
                MoveWindow(window,x-shake_distance,y-shake_distance,width,height,TRUE);
                Sleep(shake_time);
                MoveWindow(window,x,y-shake_distance,width,height,TRUE);
                Sleep(shake_time);
                MoveWindow(window,x,y,width,height,TRUE);
                Sleep(shake_time);
      }
      return 0;
}

效果图


参考编程范的思路,欢迎大家一起学习,一起探讨!!

天霸动霸tua 发表于 2018-2-8 10:18

SupKevin 发表于 2018-2-7 17:01
哈哈,我的一会就抖完了,好快~,推荐楼主去写博客,在论坛写学习笔记感觉不大好~

谢谢 不错去搞个博客玩玩

天霸动霸tua 发表于 2018-2-8 10:19

18728752045 发表于 2018-2-7 23:54
666 上学期学了C语言 没想到还能这么玩

在学校老师也不说这些觉得做好玩的东西才有兴趣

psp7456 发表于 2018-2-7 16:04

不错,谢谢分享~~!

狼来了呀 发表于 2018-2-7 16:11

谢谢分享哈。。

ywqn 发表于 2018-2-7 16:50

谢谢分享!

xxp123 发表于 2018-2-7 16:52

好人,上机试了一试,运行通过

SupKevin 发表于 2018-2-7 17:01

哈哈,我的一会就抖完了,好快~,推荐楼主去写博客,在论坛写学习笔记感觉不大好~

feerung 发表于 2018-2-7 20:10

这个有点意思了,支持!

逝晓风 发表于 2018-2-7 22:48

非常有意思

Modesty 发表于 2018-2-7 23:54

666 上学期学了C语言 没想到还能这么玩

内心xi 发表于 2018-2-8 07:41

怎么利用这个抖动好友呢
页: [1] 2 3 4 5
查看完整版本: 【笔记】用 C语言实现窗口抖动