http://hi.baidu.com/blue236146_/blog/item/1ca20f93d277729fa877a449.html
一,设计思路.
1,在屏幕上截取两幅图片,保存为BMP类型.
2,读取两幅位图的数据区,对比RGB值,不同将该像素区域设为255,0,0. (此处不是红色,而是蓝色,具体原因参看我整理的BMP位图结构)
3,新建空位图,将新的数据区拷贝到空位图中.此时该位图已经把两幅图片的不同之处都用蓝色覆盖了.
4,用StretchDIBits将新位图显示在我们的对话框程序上.
5,处理对话框程序上的鼠标点击消息.
PS: 我希望学习交流的朋友可以按照流程自己去写代码,所以在此我传的为截图,望谅解.
二,实际开发. (空间不能添加附件... 汗!)
Remark: 如对BMP结构不了解,先看看我之前写的文章 BMP位图结构.
创建MFC AppWizard(exe) 工程名 Plugin
选择一个基于对话框的应用程序
设计对话框结构如下图
控件ID:
IDC_BTN_SNAPSHOT
IDC_BTN_ABOUT
IDC_BTN_MIN
IDC_BTN_EXIT
中间最大的区域为 IDC_BTN_BMP
在CPluginDlg类中创建 析构函数和公有数据,构造函数中自己对值初始化下,我不贴代码了.
析构函数: Remark:三幅位图在后面会产生
在BOOL CPluginDlg::OnInitDialog()中:
给功能区四个控件添加响应函数:需包含bitmaps.h
此时四个控件响应代码添加完毕了,我们还需要将位图C显示在我们的对话框上
添加WINDOWS消息处理:
添加 鼠标左键单击消息的处理:
添加 虚函数截取消息
OK了! 此时编译链接有错误的话改下,运行后:
之后去QQGAME试验下!
好嘛! 我找了两个蓝钻! 我们只虐蓝钻...
点击截图对比
之后手动点下蓝色方块区域
好嘛. 让我们尽情去虐蓝钻吧.
PS:为维护游戏公平秩序,我希望各位写完代码之后不要发布此程序. 仅供大家学习交流.
需要源文件的朋友可以PM我.