andyzhshg 发表于 2008-6-1 16:09

[求助]如何禁止OnLButtonDown的鼠标输入

在做一个人机博弈的小程序,人的输入使用鼠标,想通过调用CXXXView::OnLButtonDown(UINT nFlags, CPoint point)来实现电脑走棋的输入,但是我如何在电脑走棋的过程中禁止人的鼠标输入呢?

大致的调用过程如下:

void CXXXView::OnPaint()
{
    ......
    NextStep();
}
void CXXXView::OnLButtonDown(UINT nFlags, CPoint point)
{

    DoSomeThing(point);
    ......

}
void CXXXView::NextStep()
{
    if(man_move)
        return;
    else if(computer_move)
    {
        CPoint point = xxx;
        OnLButtonDown(NULL,point);
    }
}

余来 发表于 2008-6-1 22:03

用一个变量保存当前是什么模式,如bool model,为真表示人操作,假表示电脑操作,在OnLButtonDown函数中,首先就判断变量model,如果是假,表示当前是电脑操作中,则直接返回,否则继续往下执行

rarra 发表于 2008-6-2 16:08

设一个开关变量 比如说 bool Flag
void CXXXView::OnLButtonDown(UINT nFlags, CPoint point)
{
    if(Flag)
        return;
    DoSomeThing(point);
    ......
    Flag = true;
}

andyzhshg 发表于 2008-6-2 23:59

多谢楼上,挺简单的我就没想到

页: [1]

编程论坛