[ borquee @ 29.04.2007. 03:13 ] @


Situacija je sledeca

- aplikacija 1 ... kontrola
- aplikacija 2 ... directX u fullscreenu na drugom monitoru (inace je DLL)

- aplikacija 1 je owner aplikacije 2 (i salje podatke aplikaciji 2)

problem:
- kad se uradi minimize aplikacije 1 drugi (fullscreen) se isto minimizira (izgubi) (isto i ako se klikne negde van app 1)

probao sam u CALLBACKu ukinuti WM_NCACTIVATE message... onda mi meniji ne rade u aplikaciji 1...
WM_ACTIVATEAPP isto ne donosi normalne rezultate

meni bi bilo jako fino da druga aplikacija bude stalno aktivna (vidljiva)

sta da se radi... koje message da blokiram u callbacku?

hvala,
b.
[ burazer @ 14.12.2007. 13:25 ] @
Pa stvar je da to ne moze da se postigne u DirectX-u (koliko ja znam, a mozda i gresim).

Problem je u sledecem, cim aplikacija koja ide u fullscreen-u izgubi fokus u tom trenutku se aktivira minimize. To je tako napravljeno u DX9, ne znam da li je ispravljeno u DX10.

Ono sto bi mogao da uradis (kako sam ja resio taj problem), je da uradis slicnu stvar koju radi recimo Adobe Acrobat kada ide u full screen. Nemoj da ides u pravi full screen nego u fake full screen.
Kako to da uradis?
Napravis prozor bez gornjeg dela u kojem stoji ime prozora i stavis mu da bude dialog prozor.

SetWindowLong(Handle,-16,WS_DLGFRAME);

i onda ga pomeris za par piksela van ivice drugog ekrana i povecas ga za dovoljno da se ne vidi border. Mana tog resenja je da nemas punu directX akceleraciju tako da ce ti trazena aplikacija verovatno raditi za nijansu sporije.

Nadam se da ti je odgovor barem malkice pomogao.
[ genuine @ 18.12.2007. 01:24 ] @
Mozes da napravis dva nezavisna programa pa da ondak preko message passing-a kontrolni salje podatke onom za prikaz.. to moze da se uradi preko soketa recimo ili RPC ( koji ce biti implementiran interno kao LPC pa su mali gubici u performansama).

ili

Pogledaj u pocetnoj fazi pravljenja prozora i DX device-a i ono sa enumeracijama video karti / monitora gde biras za koju graficku kartu i koji ekran pravis dx device pa napravi dva za svaki monitor po jedan i dva prozora... ako moze...
[ borquee @ 18.12.2007. 09:00 ] @

sve sam te varijante probao (i sockete i messaging)...

stvar je u tome sto aplikacija mora poslati na dx prozor 80ak mb/s (generalno i više) i pri tom ne sme kasniti/stucati ... probao sam srediti to sa share-anom memorijom... tu se isto izgubi dosta u vremena u kopiranju.

... hvala na odgovorima ... zezao sam se ovim pre dosta vremena, onda su me zatrpali neki drugi poslovi ... inace sredio sam delimicno problem sa presretanjem windows message-a ali to nije bas najstabilnije resenje problema.... najvise bih volio kad bih nekako mogao otkaciti moj prozor od aplikacije (inace u pitanju je plugin za after effects,u full screen prozoru su neke analize slike itd...)