2009-05-15 8 views
0

私はVC++ MFCダイアログアプリケーションを持っていて、私のOnTimer関数では、現在フォーカスがあるダイアログのボタンを特定しようとしています。ここでボタンフォーカスを取得する -

は私が達成しようとしているもののいくつかの擬似コードです....

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

ありがとう、それは私が探していたものです。ありがとうagain1 –

+0

私は同じことをやってみましたが、それは動作しますが、ボタン領域の外側をクリックするとボタンが機能します。私がその地域から移動するとき、どのようにフォーカスを殺すのですか? – Neophile

+0

@Newbie、あなたがここで何を求めているのか分かりません。あなたは、新しい質問を開き、あなたがしようとしていることについていくつかの詳細を追加することで、より良い運を持っているかもしれません。 –

関連する問題