【发布时间】:2009-05-15 01:28:29
【问题描述】:
我有一个 VC++ MFC 对话框应用程序,在我的 OnTimer 函数中,我只是想确定对话框中的哪个按钮当前具有焦点。
这是我想要完成的一些伪代码......
CDialog::OnTimer()
{
CButton *btn = GetButtonOnFocus();
int btnID = btn->GetDlgCtrlID();
}
【问题讨论】:
我有一个 VC++ MFC 对话框应用程序,在我的 OnTimer 函数中,我只是想确定对话框中的哪个按钮当前具有焦点。
这是我想要完成的一些伪代码......
CDialog::OnTimer()
{
CButton *btn = GetButtonOnFocus();
int btnID = btn->GetDlgCtrlID();
}
【问题讨论】:
我没试过,但这应该可以:
CWnd * pFocus = GetFocus();
int btnID = 0;
if (pFocus != NULL && pDialog->IsChild(pFocus))
btnID = pFocus->GetDlgCtrlID();
这不会将结果仅限于按钮 - 为此,您需要使用 GetClassName 并与“按钮”进行比较。
【讨论】:
hwnd 方便,那也可以。该问题专门询问“哪个按钮”,因此我认为我的答案更接近所需的内容。