我有一个MFC按钮控件,我试图通过点击启动计时器并使其在OnTimer函数中完成我的事件来处理它的“OnPressed”事件。这一切都很好,但焦点仍然在按钮上,如果我点击按钮区域外,应用程序执行OnPressed事件。关于在按钮区域外按鼠标时如何消除按钮焦点的任何建议?我获取焦点和按钮ID的代码。
void Dlg::OnTimer(...)
{
CWnd * pFocus = GetFocus();
int btnID = 0;
if (pFocus != NULL && pDialog->IsChild(pFocus))
btnID = pFocus->GetDlgCtrlID();
// Carry on my button pressed activity
Buttonpressed();
}
所以基本上我正在按下正确的按钮,我可以使用上面给出的Buttonpressed()函数执行所需的操作。现在我的问题是,一旦按下该按钮,它就会获得焦点,即使在我离开鼠标并移出按钮区域之后焦点仍然存在。由于这种行为,如果我在按钮区域外单击,应用程序仍然认为我在鼠标区域并按下按钮。有没有办法在鼠标移出按钮区域后移除焦点,然后当它在按钮区域时再次重新聚焦?
期待您的建议。