zoukankan      html  css  js  c++  java
  • MFC版美女找茬

    今天心情:捡了个闲暇。

    前几天工作出了个漏洞,电话会议时候怎么都是忽大忽小的声音,实在没听清电话会议的内容,完了依据想象交了一个设计方案,之后便是赋闲。

    进入正题,美女找茬实现不难,没有设计上的难度,找到API即可,API的顺序如下:

    1.对话框的透明、置顶、穿透属性实现。

    -----自然得洋气一点,那种半透明的、不小心点了鼠标就把游戏窗口的焦点整没的一定不能要。

    2.查找QQ游戏窗口的名称以及获得句柄。

    -----SPY++获得窗口名称,FindWindow获得指定名称窗口的句柄。

    3.移动对话框将之覆盖到美女找茬左侧或者右侧的图片上

    -----MoveWindow,移动窗口并改变大小,最后一个参数指定是否重绘窗口

    4.依据QQ游戏窗口句柄获得指定位置的像素

    -----Handle初始化DC,依据DC的GetPixel方法获得指定像素点的颜色。

    5.透明对话框上绘制不透明的像素点

    -----犯难很久才搞定,窗口属性指定透明颜色、设置窗口背景为透明色、绘制时采用不透明色进行绘制。

    6.定义全局快捷键

    -----对话框又透明又穿透的,鼠标已经奈何不了它了,来全局快捷键吧

    以下仅给出相应的API调用样例,有兴趣的朋友自行组装,不想动手做只想哄女朋友的同学抱歉啦。

      窗口透明以及鼠标穿透的API: SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, 

                GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | 
                WS_EX_TRANSPARENT | //鼠标穿透
                WS_EX_LAYERED        //图层窗口
                );

    指定RGB(255,255,255)色为透明色的API:SetLayeredWindowAttributes(#ffffff,100, LWA_COLORKEY); 

    ----此API搭配背景色填充可实现对话框透明:dc->FillSolidRect(currect, #ffffff); 

    对话框个性化的API:ModifyStyle( WS_CAPTION, WS_MINIMIZEBOX, SWP_DRAWFRAME ); 

      ----可以去掉标题、边框、最大最小按钮。

      移动并改变窗口大小的API:MoveWindow(100, 300, 500, 500, TRUE);

    -----前四个参数分别对应x、y、width、height

    窗口名称获得通过SPY++,这个工具很简单,打开界面就会用了。

    窗口获取句柄API以及依据句柄获取DC和指定像素点的色彩值的API:  

    CWnd* wnd = NULL;

    wnd = FindWindow(NULL, _T("QQ游戏-美女找茬"));
    CPaintDC dc(wnd);

    dc.GetPixel(100, 100);

    对话框上绘制像素点,可以用setpixel实现,也可以用fillrect实现,API:CBrush b(#ff0000); dc->FillRect(currect, &b);

      定义全局快捷的相关API:

    -----这是典型的回调函数,普通函数需要声明与定义,回调函数还需要注册与关联。

    声明:afx_msg long OnHotKey(WPARAM wparam, LPARAM lparam); 

    定义:long CbellecompDlg::OnHotKey(WPARAM lparam, LPARAM wparam)

    {
    if(lparam == 199)
    {
    AfxMessageBox(_T("global hotkey  a"));
    return 0;
    }
    else if(lparam == 120)
    {
    AfxMessageBox(_T("global hotkey b"));
    return 0;
    }
    return 0;

    注册:RegisterHotKey(GetSafeHwnd(), 199, MOD_CONTROL, 'A');
    RegisterHotKey(GetSafeHwnd(), 120, MOD_CONTROL, 'B'); 

    关联消息:ON_MESSAGE(WM_HOTKEY, OnHotKey)

     

     啊,程序员玩游戏真是无聊呀。

  • 相关阅读:
    html页面禁止自动填充浏览器记住的密码
    未能加载文件或程序集“System.Data.SQLite.DLL”或它的某一个依赖项
    DotNetMQ的一个小demo
    js 排列 组合 的一个简单例子
    js 生成笛卡尔积
    290.单词模式。给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。(c++方法)
    递归与迭代的联系以及优缺点(以c++为例)
    leetcode344 反转字符串 c++实现
    面试题:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。(c++实现)
    LeetCode题库13. 罗马数字转整数(c++实现)
  • 原文地址:https://www.cnblogs.com/learn-my-life/p/3382109.html
Copyright © 2011-2022 走看看