Merci, le cas d'utilisation est intéressant. Cependant, je ne comprend pas le fonctionnement. En effet, si je vois comment coder cette fonction, je suis censé créer un frame, un bouton, un caption ou une scrollbox. Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas persistent. Dès qu'on affiche quelquechose au dessus, ce dessin disparait. Comment on l'utilise correctement (dans quel contexte) afin d'avoir de vrai frame ou bouton, ... qui peuvent eux même contenir frame, bouton, ...
"Christian ASTOR" a écrit dans le message de news: 41af72c1$0$19101$
@rennes wrote:
> Auriez vous un exemple d'utilisation de cette fonction ? (j'utilise
Merci, le cas d'utilisation est intéressant.
Cependant, je ne comprend pas le fonctionnement.
En effet, si je vois comment coder cette fonction, je suis
censé créer un frame, un bouton, un caption ou une scrollbox.
Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas
persistent. Dès qu'on affiche quelquechose au dessus, ce dessin disparait.
Comment on l'utilise correctement (dans quel contexte) afin d'avoir de vrai
frame ou bouton, ... qui peuvent eux même contenir frame, bouton, ...
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news: 41af72c1$0$19101$7a628cd7@news.club-internet.fr...
@rennes wrote:
> Auriez vous un exemple d'utilisation de cette fonction ? (j'utilise
Merci, le cas d'utilisation est intéressant. Cependant, je ne comprend pas le fonctionnement. En effet, si je vois comment coder cette fonction, je suis censé créer un frame, un bouton, un caption ou une scrollbox. Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas persistent. Dès qu'on affiche quelquechose au dessus, ce dessin disparait. Comment on l'utilise correctement (dans quel contexte) afin d'avoir de vrai frame ou bouton, ... qui peuvent eux même contenir frame, bouton, ...
"Christian ASTOR" a écrit dans le message de news: 41af72c1$0$19101$
@rennes wrote:
> Auriez vous un exemple d'utilisation de cette fonction ? (j'utilise
Cet exemple ne résoud pas mon problème qui reste le maintiens de l'affichage du composant généré quand on redessine l'écran.
Merci cependant.
"BlueR" a écrit dans le message de news:
Bonjour
Un petit extrait de code en C++ sous Builder, pour dessiner une case à cocher dans une StringGrid :
// taille de la checkbox RECT RCell = static_cast<RECT>(Rect); RCell.left += (RCell.right - RCell.left - GetSystemMetrics(SM_CXMENUCHECK))/2; // pour centrer RCell.right = RCell.left + GetSystemMetrics(SM_CXMENUCHECK); RCell.top += 1 + (RCell.bottom - RCell.top - GetSystemMetrics(SM_CYMENUCHECK))/2; // pour centrer RCell.bottom = RCell.top + GetSystemMetrics(SM_CYMENUCHECK); // dessin de la checkbox DrawFrameControl(StringGrid->Canvas->Handle, &RCell, DFC_BUTTON, DFCS_BUTTONCHECK | DFCS_CHECKED; // pour la case à cocher
Cela donne les cases à cocher dans la colonne Rdv sur cet écran http://rdvpro.free.fr/Demandes%20Parents.gif
-- BlueR
Aurélien REGAT-BARREL
> Cet exemple ne résoud pas mon problème qui reste le maintiens de l'affichage du composant généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une fenêtre pour être informé quand elle est effacée. Les menus que tu vois sous XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait pareil, crée une fenêtre dont tu détermines la région visible en fonction de ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
-- Aurélien REGAT-BARREL
> Cet exemple ne résoud pas mon problème
qui reste le maintiens de l'affichage du composant
généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une
fenêtre pour être informé quand elle est effacée. Les menus que tu vois sous
XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une
petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui
dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait
pareil, crée une fenêtre dont tu détermines la région visible en fonction de
ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
> Cet exemple ne résoud pas mon problème qui reste le maintiens de l'affichage du composant généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une fenêtre pour être informé quand elle est effacée. Les menus que tu vois sous XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait pareil, crée une fenêtre dont tu détermines la région visible en fonction de ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
-- Aurélien REGAT-BARREL
Christian ASTOR
@rennes wrote:
Merci, le cas d'utilisation est intéressant. Cependant, je ne comprend pas le fonctionnement. En effet, si je vois comment coder cette fonction, je suis censé créer un frame, un bouton, un caption ou une scrollbox. Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas persistent.
Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou WM_NCPAINT, WM_ERASEBKGND) On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. Windows l'utilise entre autres pour dessiner des check boxes.
@rennes wrote:
Merci, le cas d'utilisation est intéressant.
Cependant, je ne comprend pas le fonctionnement.
En effet, si je vois comment coder cette fonction, je suis
censé créer un frame, un bouton, un caption ou une scrollbox.
Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas
persistent.
Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou
WM_NCPAINT, WM_ERASEBKGND)
On l'utilise par ex pour dessiner des pseudo-boutons ds la caption.
Windows l'utilise entre autres pour dessiner des check boxes.
Merci, le cas d'utilisation est intéressant. Cependant, je ne comprend pas le fonctionnement. En effet, si je vois comment coder cette fonction, je suis censé créer un frame, un bouton, un caption ou une scrollbox. Je la crée sur le desktop mais ce n'est qu'un dessin. Ce n'est pas persistent.
Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou WM_NCPAINT, WM_ERASEBKGND) On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. Windows l'utilise entre autres pour dessiner des check boxes.
Aurelien REGAT-BARREL
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou WM_NCPAINT, WM_ERASEBKGND) On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
-- Aurélien REGAT-BARREL
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou
WM_NCPAINT, WM_ERASEBKGND)
On l'utilise par ex pour dessiner des pseudo-boutons ds la caption.
Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou WM_NCPAINT, WM_ERASEBKGND) On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
-- Aurélien REGAT-BARREL
Ben si je dessine sur la fenêtre, je dessine pas sur le bureau. Ce qui pose pas mal de problème pour la mise en premier plan. Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre. Mais je pensais qu'il existait un évènement de bureau type WM_Paint que l'on pouvait utiliser pour redessiner.
"Aurélien REGAT-BARREL" a écrit dans le message de news: 41b080bb$0$1871$
> Cet exemple ne résoud pas mon problème > qui reste le maintiens de l'affichage du composant > généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une fenêtre pour être informé quand elle est effacée. Les menus que tu vois
sous
XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait pareil, crée une fenêtre dont tu détermines la région visible en fonction
de
ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
-- Aurélien REGAT-BARREL
Ben si je dessine sur la fenêtre, je dessine pas sur le bureau.
Ce qui pose pas mal de problème pour la mise en premier plan.
Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre.
Mais je pensais qu'il existait un évènement de bureau type WM_Paint
que l'on pouvait utiliser pour redessiner.
"Aurélien REGAT-BARREL" <nospam-aregatba@yahoo.fr.invalid> a écrit dans le
message de news: 41b080bb$0$1871$636a15ce@news.free.fr...
> Cet exemple ne résoud pas mon problème
> qui reste le maintiens de l'affichage du composant
> généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une
fenêtre pour être informé quand elle est effacée. Les menus que tu vois
sous
XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une
petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui
dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait
pareil, crée une fenêtre dont tu détermines la région visible en fonction
de
ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
Ben si je dessine sur la fenêtre, je dessine pas sur le bureau. Ce qui pose pas mal de problème pour la mise en premier plan. Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre. Mais je pensais qu'il existait un évènement de bureau type WM_Paint que l'on pouvait utiliser pour redessiner.
"Aurélien REGAT-BARREL" a écrit dans le message de news: 41b080bb$0$1871$
> Cet exemple ne résoud pas mon problème > qui reste le maintiens de l'affichage du composant > généré quand on redessine l'écran.
Ah... tu veux dessiner ça directement sur le desktop. Ben faut créer une fenêtre pour être informé quand elle est effacée. Les menus que tu vois
sous
XP (fais un clic droit sur le bureau) ou sur les tooltips balloon, y'a une petite zone d'ombre sur le bord droit, ben c'est plusieurs fenêtres qui dessinent juste un trait d'épaisseur 1 en semi-transparence! Donc fait pareil, crée une fenêtre dont tu détermines la région visible en fonction
de
ce que tu veux dessiner et dessines y dessus lors de WM_PAINT.
-- Aurélien REGAT-BARREL
Vous n'auriez pas un cas d'utilisation ?
"Aurelien REGAT-BARREL" a écrit dans le message de news: 41b0f47d$0$26437$
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou > WM_NCPAINT, WM_ERASEBKGND) > On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. > Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
-- Aurélien REGAT-BARREL
Vous n'auriez pas un cas d'utilisation ?
"Aurelien REGAT-BARREL" <nospam.aregatba@yahoo.fr.invalid> a écrit dans le
message de news: 41b0f47d$0$26437$626a14ce@news.free.fr...
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou
> WM_NCPAINT, WM_ERASEBKGND)
> On l'utilise par ex pour dessiner des pseudo-boutons ds la caption.
> Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
"Aurelien REGAT-BARREL" a écrit dans le message de news: 41b0f47d$0$26437$
> Comme tout dessin sous Windows, on dessine tjrs ds WM_PAINT (ou > WM_NCPAINT, WM_ERASEBKGND) > On l'utilise par ex pour dessiner des pseudo-boutons ds la caption. > Windows l'utilise entre autres pour dessiner des check boxes.
Tiens, j'y pense. J'ai jamais essayé de subclasser le fenêtre du bureau...
-- Aurélien REGAT-BARREL
Aurélien REGAT-BARREL
> Ben si je dessine sur la fenêtre, je dessine pas sur le bureau.
Quelque part, en dessinant sur une fenêtre (au fond transparent etc...) qui est sur le bureau, on dessine sur le bureau.
Ce qui pose pas mal de problème pour la mise en premier plan.
Le bureau est en dernier plan non ? Le style TOPMOST sur la fenêtre devrait corriger le problème.
Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre. Mais je pensais qu'il existait un évènement de bureau type WM_Paint que l'on pouvait utiliser pour redessiner.
Oui, évènement destiné au bureau. Tu ne le reçois pas au même titre que tu ne reçois pas le WM_PAINT des autres fenêtres.
Que veux-tu faire ? Dessiner directement sur l'écran ou sur le bureau ?
-- Aurélien REGAT-BARREL
> Ben si je dessine sur la fenêtre, je dessine pas sur le bureau.
Quelque part, en dessinant sur une fenêtre (au fond transparent etc...) qui
est sur le bureau, on dessine sur le bureau.
Ce qui pose pas mal de problème pour la mise en premier plan.
Le bureau est en dernier plan non ? Le style TOPMOST sur la fenêtre devrait
corriger le problème.
Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre.
Mais je pensais qu'il existait un évènement de bureau type WM_Paint
que l'on pouvait utiliser pour redessiner.
Oui, évènement destiné au bureau. Tu ne le reçois pas au même titre que tu
ne reçois pas le WM_PAINT des autres fenêtres.
Que veux-tu faire ? Dessiner directement sur l'écran ou sur le bureau ?
> Ben si je dessine sur la fenêtre, je dessine pas sur le bureau.
Quelque part, en dessinant sur une fenêtre (au fond transparent etc...) qui est sur le bureau, on dessine sur le bureau.
Ce qui pose pas mal de problème pour la mise en premier plan.
Le bureau est en dernier plan non ? Le style TOPMOST sur la fenêtre devrait corriger le problème.
Je vais voir du coté des hooks si je peux pas raffraichir ma fenêtre. Mais je pensais qu'il existait un évènement de bureau type WM_Paint que l'on pouvait utiliser pour redessiner.
Oui, évènement destiné au bureau. Tu ne le reçois pas au même titre que tu ne reçois pas le WM_PAINT des autres fenêtres.
Que veux-tu faire ? Dessiner directement sur l'écran ou sur le bureau ?