国庆节开始学C++,发现有很多地方和C#不一样。
请问:
我一段代码本来是放在“llk_wg.cpp"中的,后来放在“GameProc.h”。其中有一段代码居然可以删除的,而且运行后不报错。不理解请各位帮我看看。我认为第一次执行成功以后在项目的某个文件夹里面有记录了,下一次执行的时候就接着执行了是这样吗?
HWND gameh;
RECT r1;
POINT p;
void StartGame()
{
// TODO: 在此添加控件通知处理程序代码
//获取窗口句柄
gameh=::FindWindowA(NULL,"QQ游戏 - 连连看角色版");
::GetWindowRect(gameh,&r1);
         //就是下面被注释掉的的两行
//this->m_x=r1.left;this->m_y=r1.top;
//UpdateData(false);
GetCursorPos(&p);
SetCursorPos(651+r1.left,575+r1.top);
/*MOUSEEVENTF_LEFTDOWN
Specifies that the left button is down.
MOUSEEVENTF_LEFTUP
Specifies that the left button is up.*/
Sleep(200);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
SetCursorPos(p.x,p.y);
}

解决方案 »

  1.   

    本来代码是这样的HWND gameh;
    RECT r1;
    POINT p;
    void StartGame()
    {
    // TODO: 在此添加控件通知处理程序代码
    //获取窗口句柄
    gameh=::FindWindowA(NULL,"QQ游戏 - 连连看角色版");
    ::GetWindowRect(gameh,&r1);
    this->m_x=r1.left;this->m_y=r1.top;
    UpdateData(false);
    GetCursorPos(&p);
    SetCursorPos(651+r1.left,575+r1.top);
    /*MOUSEEVENTF_LEFTDOWN
    Specifies that the left button is down.
    MOUSEEVENTF_LEFTUP
    Specifies that the left button is up.*/
    Sleep(200);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    SetCursorPos(p.x,p.y);
    }然后我新建了头文件“GameProc.h”,把代码放到了一个方法里
    void CLlk_wgDlg::OnBnClickedButton1()
    {
    StartGame();
    }
    #include "stdafx.h"HWND gameh;
    RECT r1;
    POINT p;
    void StartGame()
    {
    // TODO: 在此添加控件通知处理程序代码
    //获取窗口句柄
    gameh=::FindWindowA(NULL,"QQ游戏 - 连连看角色版");
    ::GetWindowRect(gameh,&r1);
    //this->m_x=r1.left;this->m_y=r1.top;
    //UpdateData(false);
    GetCursorPos(&p);
    SetCursorPos(651+r1.left,575+r1.top);
    /*MOUSEEVENTF_LEFTDOWN
    Specifies that the left button is down.
    MOUSEEVENTF_LEFTUP
    Specifies that the left button is up.*/
    Sleep(200);
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
    SetCursorPos(p.x,p.y);
    }//this->m_x=r1.left;this->m_y=r1.top;
    //UpdateData(false);这两行在我没改之前是要使用的,但是放到GameProc.h里面后说没有标示,我就删掉,结果程序一样能运行。
      

  2.   

    clear后Rebuild,能build过,那么那段代码没有使用到。