2009-05-15 2 views
0

У меня есть диалоговое приложение VC++ MFC и в моей функции OnTimer. Я просто пытаюсь определить, какая кнопка в моем диалоговом окне в настоящее время имеет фокус.Получить фокус кнопки - MFC

Вот некоторые псевдокод, что я пытаюсь сделать ....

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

ответ

2

Я не пробовал, но это должно работать:

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

Это не ограничивает результат только кнопкам - для этого вам нужно использовать GetClassName и сравнить с кнопкой «.

+0

Спасибо, это было именно то, что я искал. Еще раз спасибо1 –

+0

Я пробовал то же самое, он работает, но нажатие кнопки работает, если я нажимаю за пределами области кнопки (т. Е. Кнопка остается сфокусированной). Любые предложения о том, как мне убить фокус, когда я выхожу из своего региона? – Neophile

+0

@ TheNewbie, я не уверен, что вы просите здесь. Возможно, вам повезет, открыв новый вопрос и добавив некоторые детали того, что вы пытаетесь сделать. –

 Смежные вопросы

  • Нет связанных вопросов^_^