2012-03-21 3 views
0

대화 상자의 ComboBox 컨트롤에서 GetFocus()를 사용하려고하지만 어떤 이유로 작동하지 않습니다.
SetFocus() 함수로 포커스를 설정하더라도 작동하지 않지만 키보드 포커스가있는 것처럼 보입니다.대화 상자의 ComboBox에서 GetFocus

SetFocus(hKeysComboBox); 
if (GetFocus() == hKeysComboBox) // This is false 

대화 상자에있을 수 있습니다. 나도 몰라, 이건 너무 단순 해.

답변

2

편집 가능한 콤보입니까? 그것들은 실제로 자식 Edit 컨트롤을 포함하고, 콤보를 포커스하면 콤보는 자식 에디트 컨트롤을 포커스하여 (키보드 입력을 관리 할 수있게합니다). Spy ++를 사용하여이 상위/하위 구조를 볼 수 있습니다.

그래서 콤보에 포커스가 있는지 확인하려면 GetFocus의 부모가 콤보인지 확인하면됩니다.

0
if (VC++) 
{ 
    use `tag order` property; 
} 
else 
{ 
    use WM_NEXTDLGCTL with SendMessage; 
} 

자세한 내용은 How to set focus in a dialog box을 참조하십시오.