OVH Cloud OVH Cloud

Changer le ParentWnd via SetParent

3 réponses
Avatar
Olivier
Bonjour,

J'ai une application avec une CMainFrame et une CMiniFrameWnd
Lors de la creation de la CMiniFrameWnd dans le Create je lui passe le
CMainFrame
comme parent du coup la CminiFrameWnd est toujours affiché devant la
CMainFrame,
si le lui passe NULL en parent la fenetre active est affiché devant l'autre.

Mais comment switcher dynamique une fois la CMiniFrameWnd Create d'un mode
avec Parent a un mode sans Parent j'ai essayé avec SetParent mais cela ne
fonctionne pas.

Comment faire ?

Merci

3 réponses

Avatar
Paul Bacelar
"Olivier" wrote in message
news:d07eb8$sbg$
Bonjour,

J'ai une application avec une CMainFrame et une CMiniFrameWnd
Lors de la creation de la CMiniFrameWnd dans le Create je lui passe le
CMainFrame
comme parent du coup la CminiFrameWnd est toujours affiché devant la
CMainFrame,
si le lui passe NULL en parent la fenetre active est affiché devant


l'autre.

Mais comment switcher dynamique une fois la CMiniFrameWnd Create d'un mode
avec Parent a un mode sans Parent j'ai essayé avec SetParent mais cela ne
fonctionne pas.

Comment faire ?

Merci





Ne faudrait-il pas utiliser la notion de propriété (Owner) plutôt que de
hiarchy (Parent) pour votre cas d'utilisation ?

Pour que SetParent fonctionne, il faut que la fenêtre soit déjà créée.


--
Paul Bacelar
Avatar
Olivier
"Paul Bacelar" wrote in message
news:d08cq7$crv$
"Olivier" wrote in message
news:d07eb8$sbg$
> Bonjour,
>
> J'ai une application avec une CMainFrame et une CMiniFrameWnd
> Lors de la creation de la CMiniFrameWnd dans le Create je lui passe le
> CMainFrame
> comme parent du coup la CminiFrameWnd est toujours affiché devant la
> CMainFrame,
> si le lui passe NULL en parent la fenetre active est affiché devant
l'autre.
>
> Mais comment switcher dynamique une fois la CMiniFrameWnd Create d'un


mode
> avec Parent a un mode sans Parent j'ai essayé avec SetParent mais cela


ne
> fonctionne pas.
>
> Comment faire ?
>
> Merci
>
>

Ne faudrait-il pas utiliser la notion de propriété (Owner) plutôt que de
hiarchy (Parent) pour votre cas d'utilisation ?

Pour que SetParent fonctionne, il faut que la fenêtre soit déjà créée.




Mais ma CMiniFrameWnd est deja cree avec un parent
Via un toolbar dans la toolbar je voudrai switcher entre
d'un mode ou ma miniframewnd est toujours devant ma
mainframe et un mode ou c'est la fenetre active qui passe en
premier plan.
Avatar
Vincent Burel
"Olivier" wrote in message
news:d09cda$npj$

"Paul Bacelar" wrote in message
news:d08cq7$crv$



> Ne faudrait-il pas utiliser la notion de propriété (Owner) plutôt que de
> hiarchy (Parent) pour votre cas d'utilisation ?
>
> Pour que SetParent fonctionne, il faut que la fenêtre soit déjà créée.


Mais ma CMiniFrameWnd est deja cree avec un parent
Via un toolbar dans la toolbar je voudrai switcher entre
d'un mode ou ma miniframewnd est toujours devant ma
mainframe et un mode ou c'est la fenetre active qui passe en
premier plan.



pour gérer la place d'une fenetre dans le Z order, on peut jouer sur sa
position .
SetWindowPos(...) permet de positionner une fenetre dans le premier plan.
ou bien sur la propriété de la fenêtre à l'aide du style étendu.
par exemple pour qu'une fenetre reste au premier plan :
SetWindowLong(hw,GWL_EXSTYLE,WS_EX_TOPMOST);

VB