[ sspasic @ 17.10.2003. 22:24 ] @
Ovo me muci vec par dana i pocinjem da ocajavam...

Imam ATL ActiveX kontrolu, (CComCompositeControl) koja u nekom trenutku prikaze dijalog (CAxDialog) na kome se nalazi druga ActiveX kontrola (hostovana pomocu CAxWindow), a ona je takodje kompozitna - ima par tastera i par input polja.
Problem je sto na dijalogu ne radi TAB taster za setanje izmedju windows kontrola na hostovanoj ActiveX kontroli.

Nasao sam par resenja, ali sva zahtevaju izmenu u osnovnoj petlji aplikacije (GetMessage, ProcessMessage, repeat) tako sto se doda kod koji TranslateAccelerator funkcijom radi magiju.
E ovde je problem sto toga nema, jer osnovni kontejner aplikacije je Internet Explorer, tako da nemam pristupa toj petlji (bar mislim).

Nasao sam i par polovicnih resenja na Microsoftovoj ATL listi ali sva su za poneki specijalan slucaj i po pravilu za varijante kada se moze izmeniti ona petlja za poruke,
tj. kada je osnovni kontejner aplikacija ciji source mozemo da menjamo.

Nasao sam i Microsoftov primer koji sa CAxWindow::SetExternalUIHandler podmetne objekat koji implementira IDocHostUIHandlerDispatch i sam primer radi, ali kada je CAxWindow na CAxDialog, funkcije IDocHostUIHandlerDispatch jednostavno ne bivaju pozvane...

Zna li neko resenje?

Moze li se nekako u ATL kontrolu ukomponovati WTL::CMessageFilter pa da se u PreTranslateMessage handluje TAB taster?
To bi resilo problem, ali ne znam gde da 'uglavim' filter.
[ Dragi Tata @ 17.10.2003. 23:14 ] @
Teško da će ti neko ovde odgovoriti na takvo pitanje. Probaj ovde:

http://www.codeproject.com/scr...mments/forums.asp?forumid=4486