J'essaie d'ajouter une interface MDI à mon application et j'ai quelques
problèmes de dessin.
Mon application est composée ainsi (c'est un data logger digital sur port
série):
Fenêtre cadre + StatusBar
|
-->ClientMDI (dimensionnée en fonction de la statusbar, merci Mr ASTOR)
|
-->Fenêtre enfant MDI
|
-->Fenêtres enfants de tracé des axes et des données
Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne
dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres que
je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT et
passent en arrière plan de la statusbar.
Pour illustrer mon problème, j'ai fait une version minimale de l'interface
qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI +
fenêtre de tracé dans l'enfant MDI)
http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C)
A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI"
Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît derrière
la statusbar (alors que l'arrière plan NON!).
Comment fait on pour clipper aussi les fenêtres enfants appartenant à une
enfant MDI en fonction de la taille de la MDICLIENT?
Je suis sûr que c'est stupide mais là je trouve pas...
Si vous pouvez m'aider, merci par avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
Nicolas Rentero a écrit:
Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres que je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT et passent en arrière plan de la statusbar.
Pour illustrer mon problème, j'ai fait une version minimale de l'interface qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI + fenêtre de tracé dans l'enfant MDI) http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C) A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI" Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît derrière la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE : - TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie) - retourner FALSE; (MSDN : "If an application processes this message, it should return zero. "....)
Nicolas Rentero a écrit:
Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne
dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres que
je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT et
passent en arrière plan de la statusbar.
Pour illustrer mon problème, j'ai fait une version minimale de l'interface
qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI +
fenêtre de tracé dans l'enfant MDI)
http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C)
A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI"
Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît derrière
la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE :
- TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie)
- retourner FALSE;
(MSDN : "If an application processes this message, it should return
zero. "....)
Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres que je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT et passent en arrière plan de la statusbar.
Pour illustrer mon problème, j'ai fait une version minimale de l'interface qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI + fenêtre de tracé dans l'enfant MDI) http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C) A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI" Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît derrière la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE : - TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie) - retourner FALSE; (MSDN : "If an application processes this message, it should return zero. "....)
Nicolas Rentero
Ben voila... ça fonctionne maintenant. Merci encore une fois! "Christian ASTOR" a écrit dans le message de news: 408561ab$0$7782$
Nicolas Rentero a écrit:
> Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne > dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres
que
> je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT
et
> passent en arrière plan de la statusbar. > > Pour illustrer mon problème, j'ai fait une version minimale de
l'interface
> qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI + > fenêtre de tracé dans l'enfant MDI) > http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C) > A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI" > Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît
derrière
> la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE : - TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie) - retourner FALSE; (MSDN : "If an application processes this message, it should return zero. "....)
Dans ma bêtise, je pensais avoir compris que WM_SIZE, devait être transmis au MDICLIENT et par conséquent ne devait pas être suivi d'un return afin que le message soit traité par DefFrameProc. Faut que je relise tout ça....
Ben voila... ça fonctionne maintenant.
Merci encore une fois!
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news: 408561ab$0$7782$7a628cd7@news.club-internet.fr...
Nicolas Rentero a écrit:
> Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne
> dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres
que
> je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT
et
> passent en arrière plan de la statusbar.
>
> Pour illustrer mon problème, j'ai fait une version minimale de
l'interface
> qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI +
> fenêtre de tracé dans l'enfant MDI)
> http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C)
> A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI"
> Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît
derrière
> la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE :
- TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie)
- retourner FALSE;
(MSDN : "If an application processes this message, it should return
zero. "....)
Dans ma bêtise, je pensais avoir compris que WM_SIZE, devait être transmis
au MDICLIENT et par conséquent ne devait pas être suivi d'un return afin que
le message soit traité par DefFrameProc. Faut que je relise tout ça....
Ben voila... ça fonctionne maintenant. Merci encore une fois! "Christian ASTOR" a écrit dans le message de news: 408561ab$0$7782$
Nicolas Rentero a écrit:
> Mon problème est que bien que le pourtour de la fenêtre enfant MDI ne > dépasse jamais de la statusbar (clippée par la MDICLIENT), les fenêtres
que
> je dessine à l'intérieur, par contre, dépassent du cadre de la MDICLIENT
et
> passent en arrière plan de la statusbar. > > Pour illustrer mon problème, j'ai fait une version minimale de
l'interface
> qui reproduit mon problème (fenêtre cadre + client MDI + enfant MDI + > fenêtre de tracé dans l'enfant MDI) > http://n.rentero.free.fr/Appli.zip (17K, VC6, code source en langage C) > A l'exécution, faire "Fichier" -> "Nouvelle fenêtre MDI" > Lorsque l'on réduit la fenêtre cadre, la fenêtre de tracé apparaît
derrière
> la statusbar (alors que l'arrière plan NON!).
2 bugs ds le WM_SIZE : - TRUE en dernier paramètre de MoveWindow() (sinon pas raffraichie) - retourner FALSE; (MSDN : "If an application processes this message, it should return zero. "....)
Dans ma bêtise, je pensais avoir compris que WM_SIZE, devait être transmis au MDICLIENT et par conséquent ne devait pas être suivi d'un return afin que le message soit traité par DefFrameProc. Faut que je relise tout ça....