Permalänk
Medlem

Fönster-fokus och textrutor

Tänk er följande, grovt förenklat, scenario; Ett tomt fönster, men en textruta på det. Textrutan har lite text i sig, och fönstret har ingen fokus.

När jag klickar på fönstret (utanför textrutan), så får fönstret fokus, dvs, det aktiveras. Detta är ju som det ska vara.
Men när jag klickar på rutan (när fönstret saknar fokus altså), så aktiveras både fönstret och textrutan, men textrutan registrerar inte klicket.
Om "carreten" (vad fasen heter det på svenska?) står vid första tecknet, och jag klickar på ett annat ord, så kommer den inte att flyttas. Rutan får altså fokus, men klicket försvinner.

Vet ni om något sätt att lösa detta på?

Edit: Notera: Detta problem uppkommer inte med Edit-rutor, utan enbart med RichEdit-kontroller. Det är altså en bug i Microsofts RichEdit-kontroll, och jag leter efter en workaround.

Visa signatur
Permalänk
Medlem

Kan du inte kolla om richedit kontrollen är markerad när fönstret aktiveras och då simulera/fejka ett musklick då?

Permalänk
Medlem

Jag tänkte också på det, men problemet är att fönstret kan aktiveras även om man inte klickar på det. Man kan t.ex. alt-tabba till det.

Att få reda på hur fönstret aktiverades kan nog bli lite svårt.

Visa signatur
Permalänk
Glömsk

Testa att skapa fönstret med CreateWindowEx istället för DialogBox eller CreateDialog. Brukar funka när allting annat inte gör det.

Edit: Eller kanske IsDialogMessage i meddelandeloopen.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Jag ser inte hur det skulle lösa problemet, men det tar inte länge att prova...

Skulle du kunna återskapa mitt "scenario", och kolla om du får samma problem? Skulle villja veta om det är fel på MS's komponent eller i Delphi's wrapper.

Visa signatur