[VC++\MFC] Externe applicatie in window

Pagina: 1
Acties:

  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 27-08 22:15

Klippy

Still Game

Topicstarter
Grr, hopelijk het laatste probleem voor de applicatie, maar ik heb ff hulp nodig.

Ik heb een dialog based applicatie die mooi werkt. Alleen nou moet ik daarin het window van een externe applicatie laten zien. Ik mooi WindowFromPoint gedaan om handle te krijgen, ding parent gemaakt van groupbox in m'n dialog en dacht oke dat werkt.
Maar dat viel tegen. Want als ik het scherm beweeg blijft de achtergrond staan. En kan er ook geen events aan gaan hangen omdat het een andere applicatie is.

Dus ik denk maak daar ipv een groupbox een andere Dialog, maar als ik dan child ga maken gaat m'n hele title bar en alles weg en heb ik dus echt een afbeelding van dat window in m'n dialog waar ik verder ook niks mee kan.

Ik wil dus zoiets hebben als een SDI apllicatie waarin in dat window mooi kan bewegen etc. En dan het liefste zoiets op mijn dialog.
Nou heb ik al tijd MSDN weer doorgespit, Google afgezocht, maar ik kan niet echt wat vinden. In het bedrijf weet ook niemand het en degene die het kan weten is er niet.

Dus misschien weten jullie iets en dan het liefst iets dat ik child kan maken van m'n main dialog. CFrameWnd is denk ik veel te uitgebreid en kan ik geloof ik ook niet in mijn dialog zetten. Voor de rest zie ik alleen dingen waarvan ik niet weet of die doen wat ik wil, zoals CFormView..

Pls een kleine hint :)

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 27-08 22:15

Klippy

Still Game

Topicstarter
Te begrijpen? :P

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 27-08 22:15

Klippy

Still Game

Topicstarter
Of julie snappen het niet of ik kan het niet uitleggen :? :P

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Ermmmmmmmmmmmmmmmmmmm lemme get this straight: je wilt een extern proces dat jij niet hebt gestart inline in een applicatiewindow moven alsof het een child-window van jezelf is?

Man..... lijkt me sterk dat je dat lukt, ik kan me iig niet zo snel iets bij voorstellen hoe je dit moet doen. Je zit nl. enorm in de shit met handle owners en wiens WndProc waar en wanneer aangeroepen moeten worden (vooral DispatchMessage gaat dit niet leuk vinden).

Professionele website nodig?


  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 27-08 22:15

Klippy

Still Game

Topicstarter
curry684 schreef op 03 December 2002 @ 12:09:
Ermmmmmmmmmmmmmmmmmmm lemme get this straight: je wilt een extern proces dat jij niet hebt gestart inline in een applicatiewindow moven alsof het een child-window van jezelf is?

Man..... lijkt me sterk dat je dat lukt, ik kan me iig niet zo snel iets bij voorstellen hoe je dit moet doen. Je zit nl. enorm in de shit met handle owners en wiens WndProc waar en wanneer aangeroepen moeten worden (vooral DispatchMessage gaat dit niet leuk vinden).
Daar was ik al bang voor :P

Ga straks anders nog maar eens hier wat vragen.
Maar wat ook kan anders als 2e oplossing. Kan ik niet gewoon dat venster ergens aanhangen zodat hij zeg maar op een venster blijft plakken ofzo? Zodat als ik applicatie minimaliseer dat ding meegaat etc?
En er voor de rest nix mee doe.

Is eigenlijk ongeveer hetzelfde, maar kan het?
Ingewikkeld he :P Hier vonden ze 't ook al raar, maar ze wisten ook niks beters...

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Even wat research gedaan:
Probleem 1
Probleem 2

Maarruh... er staat hier nergens dat je AttachThreadInput niet tussen 2 verschillende processen kunt uitvoeren, en als je dat doet en de top-level messages handmatig doorgooit (WM_ACTIVATEAPP en zo) heb je nog best kans dat je een (redelijk) werkend resultaat krijgt.

Je 2e oplossing kun je simpelweg doen door handmatig rotzooi te posten (WM_MINIMIZE en zo).

Ik ben benieuwd wat je al of niet lukt, hou me op de hoogte ;)

[ Voor 9% gewijzigd door curry684 op 04-12-2002 00:48 . Reden: Linkje bijgemept ]

Professionele website nodig?


  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 27-08 22:15

Klippy

Still Game

Topicstarter
curry684 schreef op 04 december 2002 @ 00:47:
Even wat research gedaan:
Probleem 1
Probleem 2

Maarruh... er staat hier nergens dat je AttachThreadInput niet tussen 2 verschillende processen kunt uitvoeren, en als je dat doet en de top-level messages handmatig doorgooit (WM_ACTIVATEAPP en zo) heb je nog best kans dat je een (redelijk) werkend resultaat krijgt.

Je 2e oplossing kun je simpelweg doen door handmatig rotzooi te posten (WM_MINIMIZE en zo).

Ik ben benieuwd wat je al of niet lukt, hou me op de hoogte ;)
Hmm thx :)

Ik zal eens gaan lezen. Was gister nog met wat anders bezig dus ga zo eens verder hiermee.
Maarja ik ben niet echt een held hierin zoals je misschien weet, maar ik ga iig proberen. Als het een beetje werkt is het goed, toch maar stage ;)

[edit]
Oke meteen een vraag voordat ik weer een uur zoek. Misschien weet iemand dat.

Ik heb nu idd dmv van GetWindowThreadProcessId() het ID van de thread van het andere window denk ik. Daarmee heb ik met AttachThreadInput() deze aan mijn dialog gehangen.

Maar nu zie ik op MSDN alleen maar staan wat de functienaam al doet vermoeden: Ik kan nu input sturen naar het window.

Maar ik geloof niet dat ik dat nodig heb. Ik heb meer de output nodig. Dus als bijvoorbeeld het window gemoved wordt dat ik mijn dialog kan repainten als die van het window een message krijgt oid.

Of moet ik daarvoor eerst wat sturen?
* Klippy gaat nog ff hard denken ;)

[ Voor 24% gewijzigd door Klippy op 04-12-2002 10:55 ]

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO

Pagina: 1