c ++ - GetFocus på en ComboBox i en dialog

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at bruge GetFocus () på en ComboBox-kontrol i en dialogboks, men af ​​en eller anden grund virker det ikke.

Selvom jeg sætter fokus med SetFocus () -funktionen, virker det ikke, men det ser ud til, at det har tastaturfokus.


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


Måske fordi det er i en dialogboks? Jeg ved ikke, det virker så simpelt.

Bedste reference


Er dette en redigerbar combo? De indeholder faktisk et barn Rediger kontrol, og når du fokuserer på kombinationsboksen, fokuserer kombinationsboksen igen barnedigeringsstyringen (så den kan modtage administrere tastaturindgangen). Du kan bruge Spy ++ til at se denne forælder/barn struktur.


Så for at kontrollere, om kombinationsboksen har fokus, kan du kontrollere, om forælder til GetFocus er Combo.

Andre referencer 1


if (VC++)
{
    use `tag order` property;
}
else
{
    use WM\_NEXTDLGCTL with SendMessage;
}


Se Sådan indstilles fokus i en dialogboks for detaljer. [3]