【问题标题】:Get button focus - MFC获取按钮焦点 - MFC
【发布时间】:2009-05-15 01:28:29
【问题描述】:

我有一个 VC++ MFC 对话框应用程序,在我的 OnTimer 函数中,我只是想确定对话框中的哪个按钮当前具有焦点。

这是我想要完成的一些伪代码......

CDialog::OnTimer()
{
     CButton *btn = GetButtonOnFocus(); 
     int btnID = btn->GetDlgCtrlID();
}

【问题讨论】:

    标签: mfc button dialog focus


    【解决方案1】:

    我没试过,但这应该可以:

    CWnd * pFocus = GetFocus();
    int btnID = 0;
    if (pFocus != NULL && pDialog->IsChild(pFocus))
        btnID = pFocus->GetDlgCtrlID();
    

    这不会将结果仅限于按钮 - 为此,您需要使用 GetClassName 并与“按钮”进行比较。

    【讨论】:

    • 谢谢,这正是我想要的。再次感谢1
    • 我也试过了,它可以工作,但是如果我在按钮区域之外单击(即按钮保持焦点),则按下按钮可以工作。当我离开它的区域时,关于如何消除焦点的任何建议?
    • @TheNewbie,我不确定你在这里问什么。打开一个新问题并添加一些关于您正在尝试做的事情的详细信息,您可能会获得更好的运气。
    • @Adrian,如果您只查询一个按钮并且您有 hwnd 方便,那也可以。该问题专门询问“哪个按钮”,因此我认为我的答案更接近所需的内容。
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多