直接正题。
软件需求:给定2张相似图,找出不同处。
A、从游戏窗口获取需要分析的图片
B、对比2图片,辨别出不同处(用红色表示)
C、点击不同处,并给游戏窗口发送点击事件
下图是游戏截图。可见效果还是可以。
1、获得游戏窗口句柄:
CWnd* pGameWnd = FindWindow( NULL, _T("大家来找茬") );
if( !pGameWnd )
{
MessageBox( _T("FindWindow fail! Please run the game!") );
return ;
}
HDC m_srcdc = ::GetDC( *pGameWnd );
2、截图:
bool getPbuffer(int x, int y,DWORD* buffer)
{
CBitmap bitmap;
CDC* srcdc = CDC::FromHandle(m_srcdc);
CDC dc;
bitmap.CreateCompatibleBitmap(srcdc,m_srcWidth,m_srcHeight);
dc.CreateCompatibleDC(srcdc);
dc.SelectObject(bitmap);
ShowWindow(SW_HIDE);
::PostMessage(m_srchWnd,WM_PAINT,0,0);