Est ce qu'on peut avoir une couleur transparentes ???
Ben c'est le propre des icônes...
Matt
"Christian ASTOR" a écrit dans le message news: 401579f1$0$6972$
Matt a écrit:
> Le probleme c'est que mon icone est 16 X 16 mais sur mon bouton > ca me met une grosse icone. > Comment puis-je faire pour avoir une petite icone ???
LoadImage() (et on ne fait pas de LoadIcon() & BM_SETIMAGE ds un WM_PAINT...)
Bonsoir,
Merci pour ta reponse, j'essaie demain. Est ce qu'on peut avoir une couleur transparentes ??? C'est pour ca que je trouvais les icones interessantes.
Matt...
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message news:
401579f1$0$6972$7a628cd7@news.club-internet.fr...
Matt a écrit:
> Le probleme c'est que mon icone est 16 X 16 mais sur mon bouton
> ca me met une grosse icone.
> Comment puis-je faire pour avoir une petite icone ???
LoadImage()
(et on ne fait pas de LoadIcon() & BM_SETIMAGE ds un WM_PAINT...)
Bonsoir,
Merci pour ta reponse, j'essaie demain.
Est ce qu'on peut avoir une couleur transparentes ???
C'est pour ca que je trouvais les icones interessantes.
"Christian ASTOR" a écrit dans le message news: 401579f1$0$6972$
Matt a écrit:
> Le probleme c'est que mon icone est 16 X 16 mais sur mon bouton > ca me met une grosse icone. > Comment puis-je faire pour avoir une petite icone ???
LoadImage() (et on ne fait pas de LoadIcon() & BM_SETIMAGE ds un WM_PAINT...)
Bonsoir,
Merci pour ta reponse, j'essaie demain. Est ce qu'on peut avoir une couleur transparentes ??? C'est pour ca que je trouvais les icones interessantes.
Déplace le chargement de l'icône et son envoie au bouton dans ton code d'initialisation/création. Si tu le fais à chaque paint : 1) une fois suffit et 2) fuite de mémoire
Tu devrais enlever le couple GetWindowRect/InvalidateRect. Si l'affichage est mauvais après avoir enlevé ce couple, tu as une bug ailleurs.
Déplace le chargement de l'icône et son envoie au bouton dans
ton code d'initialisation/création. Si tu le fais à chaque
paint : 1) une fois suffit et 2) fuite de mémoire
Tu devrais enlever le couple GetWindowRect/InvalidateRect.
Si l'affichage est mauvais après avoir enlevé ce couple, tu
as une bug ailleurs.
Déplace le chargement de l'icône et son envoie au bouton dans ton code d'initialisation/création. Si tu le fais à chaque paint : 1) une fois suffit et 2) fuite de mémoire
Tu devrais enlever le couple GetWindowRect/InvalidateRect. Si l'affichage est mauvais après avoir enlevé ce couple, tu as une bug ailleurs.
Matt
"Manuel Leclerc" a écrit dans le message news: 4016343f$
Déplace le chargement de l'icône et son envoie au bouton dans ton code d'initialisation/création. Si tu le fais à chaque paint : 1) une fois suffit et 2) fuite de mémoire
Bonsoir J'ai donc cree mon bouton dans le WinMain et j'ai fait LoadImage et SendMessage pour afficher mon icone et ca marche impeccable. Est la bonne facon de faire ??? Dans le Petzold (Programming Windows) il cree ses controles dans le WM_CREATE, donc je fesait comme ca ...
Voici mon WinMain et dites moi si cela est juste Du coup dans ma WindowProc, pour le moment, je ne traite que le WM_DESTROY...
Merci a Manuel et Christian.
Matt...
int WINAPI WinMain( HINSTANCE hInstance, // handle de l'instance courante HINSTANCE hPrevInstance, // handle de l'instance precedente (non renseigne en W32) LPSTR lpCmdLine, // pointeur sur la ligne de commande int nCmdShow) // etat de l'affichage de la fenetre { HWND hwnd, hBtnStart; HICON hi; MSG uMsg; WNDCLASSEX wcex; char szWindowClass[] = "Essai"; char szTitre[] = "Essai";
Déplace le chargement de l'icône et son envoie au bouton dans
ton code d'initialisation/création. Si tu le fais à chaque
paint : 1) une fois suffit et 2) fuite de mémoire
Bonsoir
J'ai donc cree mon bouton dans le WinMain et j'ai fait LoadImage et
SendMessage pour afficher mon icone et ca marche impeccable.
Est la bonne facon de faire ???
Dans le Petzold (Programming Windows) il cree ses controles dans
le WM_CREATE, donc je fesait comme ca ...
Voici mon WinMain et dites moi si cela est juste
Du coup dans ma WindowProc, pour le moment, je ne traite que le
WM_DESTROY...
Merci a Manuel et Christian.
Matt...
int WINAPI WinMain( HINSTANCE hInstance, // handle de l'instance
courante
HINSTANCE hPrevInstance, // handle de l'instance
precedente (non renseigne en W32)
LPSTR lpCmdLine, // pointeur sur la ligne de
commande
int nCmdShow) // etat de l'affichage de la
fenetre
{
HWND hwnd, hBtnStart;
HICON hi;
MSG uMsg;
WNDCLASSEX wcex;
char szWindowClass[] = "Essai";
char szTitre[] = "Essai";
Déplace le chargement de l'icône et son envoie au bouton dans ton code d'initialisation/création. Si tu le fais à chaque paint : 1) une fois suffit et 2) fuite de mémoire
Bonsoir J'ai donc cree mon bouton dans le WinMain et j'ai fait LoadImage et SendMessage pour afficher mon icone et ca marche impeccable. Est la bonne facon de faire ??? Dans le Petzold (Programming Windows) il cree ses controles dans le WM_CREATE, donc je fesait comme ca ...
Voici mon WinMain et dites moi si cela est juste Du coup dans ma WindowProc, pour le moment, je ne traite que le WM_DESTROY...
Merci a Manuel et Christian.
Matt...
int WINAPI WinMain( HINSTANCE hInstance, // handle de l'instance courante HINSTANCE hPrevInstance, // handle de l'instance precedente (non renseigne en W32) LPSTR lpCmdLine, // pointeur sur la ligne de commande int nCmdShow) // etat de l'affichage de la fenetre { HWND hwnd, hBtnStart; HICON hi; MSG uMsg; WNDCLASSEX wcex; char szWindowClass[] = "Essai"; char szTitre[] = "Essai";
> Matt a écrit : > > > J'ai reussi a mettre mon icone sur mon bouton... > > > > case WM_PAINT: > > > > [...] > > Déplace le chargement de l'icône et son envoie au > bouton dans ton code d'initialisation/création. Si > tu le fais à chaque paint : 1) une fois suffit et > 2) fuite de mémoire
J'ai donc cree mon bouton dans le WinMain et j'ai fait LoadImage et SendMessage pour afficher mon icone et ca marche impeccable.
Est la bonne facon de faire ??? Dans le Petzold (Programming Windows) il cree ses controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création" :-)
Si ta fenêtre n'a pas la durée de vie de ton process, pense à stocker quelque part le HANDLE de l'image, pour appel de DestroyIcon dans le WM_DESTROY du parent. Tu peux peut être ne pas le stocker mais le demander au bouton. Dans un WM_DESTROY de parent, les enfants sont toujours "là".
Voici mon WinMain et dites moi si cela est juste Du coup dans ma WindowProc, pour le moment, je ne traite que le WM_DESTROY...
Pour détruire l'icône ?
Et ben, j'ai rien dit, alors.
int WINAPI WinMain [...]
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
Je crois qu'il faut passer (HBRUSH)(COLOR_WINDOW + 1); Je sais, c'est bizarre.
[...] // Creation de la fenetre
hwnd = [...]
Il au moins aussi important, sinon plus, de tester si hwnd est NULL après l'appel, que de tester la réussite du RegisterClass. Il arrive qu'on fasse une modif quelque part dans le source et que le CreateWindow ne marche plus.
WS_PERSO
???
[...]
// Affichage de la fenetre
// Creation du bouton demarrer
// Mise a jour de la fenetre
Crée complètement le bouton avant l'affichage et tu n'auras pas d'update à faire.
D'ailleurs, ça ne marche pas _juste_ en virant l'update ?
while(GetMessage(&uMsg, NULL, 0, 0))
Ce n'est pas tout à fait ce qui est recommandé, mais là on en arrive à des pratique sur nos amis les mouches que la morale réprouve :-)
Quelqu'un a déjà vu l'API GetMessage renvoyer une erreur quand on lui passe &msg, NULL, 0, 0 ????
Matt a écrit :
Manuel Leclerc a écrit :
> Matt a écrit :
>
> > J'ai reussi a mettre mon icone sur mon bouton...
> >
> > case WM_PAINT:
> >
> > [...]
>
> Déplace le chargement de l'icône et son envoie au
> bouton dans ton code d'initialisation/création. Si
> tu le fais à chaque paint : 1) une fois suffit et
> 2) fuite de mémoire
J'ai donc cree mon bouton dans le WinMain et j'ai fait
LoadImage et SendMessage pour afficher mon icone et ca
marche impeccable.
Est la bonne facon de faire ???
Dans le Petzold (Programming Windows) il cree ses
controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création"
:-)
Si ta fenêtre n'a pas la durée de vie de ton process, pense
à stocker quelque part le HANDLE de l'image, pour appel de
DestroyIcon dans le WM_DESTROY du parent. Tu peux peut être
ne pas le stocker mais le demander au bouton. Dans un
WM_DESTROY de parent, les enfants sont toujours "là".
Voici mon WinMain et dites moi si cela est juste
Du coup dans ma WindowProc, pour le moment, je ne
traite que le WM_DESTROY...
Pour détruire l'icône ?
Et ben, j'ai rien dit, alors.
int WINAPI WinMain [...]
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
Je crois qu'il faut passer (HBRUSH)(COLOR_WINDOW + 1);
Je sais, c'est bizarre.
[...]
// Creation de la fenetre
hwnd = [...]
Il au moins aussi important, sinon plus, de tester
si hwnd est NULL après l'appel, que de tester la
réussite du RegisterClass. Il arrive qu'on fasse
une modif quelque part dans le source et que le
CreateWindow ne marche plus.
WS_PERSO
???
[...]
// Affichage de la fenetre
// Creation du bouton demarrer
// Mise a jour de la fenetre
Crée complètement le bouton avant l'affichage et
tu n'auras pas d'update à faire.
D'ailleurs, ça ne marche pas _juste_ en virant
l'update ?
while(GetMessage(&uMsg, NULL, 0, 0))
Ce n'est pas tout à fait ce qui est recommandé, mais là
on en arrive à des pratique sur nos amis les mouches que
la morale réprouve :-)
> Matt a écrit : > > > J'ai reussi a mettre mon icone sur mon bouton... > > > > case WM_PAINT: > > > > [...] > > Déplace le chargement de l'icône et son envoie au > bouton dans ton code d'initialisation/création. Si > tu le fais à chaque paint : 1) une fois suffit et > 2) fuite de mémoire
J'ai donc cree mon bouton dans le WinMain et j'ai fait LoadImage et SendMessage pour afficher mon icone et ca marche impeccable.
Est la bonne facon de faire ??? Dans le Petzold (Programming Windows) il cree ses controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création" :-)
Si ta fenêtre n'a pas la durée de vie de ton process, pense à stocker quelque part le HANDLE de l'image, pour appel de DestroyIcon dans le WM_DESTROY du parent. Tu peux peut être ne pas le stocker mais le demander au bouton. Dans un WM_DESTROY de parent, les enfants sont toujours "là".
Voici mon WinMain et dites moi si cela est juste Du coup dans ma WindowProc, pour le moment, je ne traite que le WM_DESTROY...
Pour détruire l'icône ?
Et ben, j'ai rien dit, alors.
int WINAPI WinMain [...]
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW);
Je crois qu'il faut passer (HBRUSH)(COLOR_WINDOW + 1); Je sais, c'est bizarre.
[...] // Creation de la fenetre
hwnd = [...]
Il au moins aussi important, sinon plus, de tester si hwnd est NULL après l'appel, que de tester la réussite du RegisterClass. Il arrive qu'on fasse une modif quelque part dans le source et que le CreateWindow ne marche plus.
WS_PERSO
???
[...]
// Affichage de la fenetre
// Creation du bouton demarrer
// Mise a jour de la fenetre
Crée complètement le bouton avant l'affichage et tu n'auras pas d'update à faire.
D'ailleurs, ça ne marche pas _juste_ en virant l'update ?
while(GetMessage(&uMsg, NULL, 0, 0))
Ce n'est pas tout à fait ce qui est recommandé, mais là on en arrive à des pratique sur nos amis les mouches que la morale réprouve :-)
Quelqu'un a déjà vu l'API GetMessage renvoyer une erreur quand on lui passe &msg, NULL, 0, 0 ????
Matt
> > J'ai donc cree mon bouton dans le WinMain et j'ai fait > LoadImage et SendMessage pour afficher mon icone et ca > marche impeccable. > > Est la bonne facon de faire ??? > Dans le Petzold (Programming Windows) il cree ses > controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création" :-)
Ok, j'ai donc cree mon bouton dans le WM_CREATE avec mon icone et je la detruit (l'icone) dans le WM_DESTROY
Ce n'est pas tout à fait ce qui est recommandé, mais là on en arrive à des pratique sur nos amis les mouches que la morale réprouve :-)
Sic Charles Petzold...
Je te remercie pour tes réponses et ta patience. Comme tu as pu le remarquer je suis un débutant en programmation avec l'API windows et je voudrais commencer comme il faut...
Matt...
> > J'ai donc cree mon bouton dans le WinMain et j'ai fait
> LoadImage et SendMessage pour afficher mon icone et ca
> marche impeccable.
>
> Est la bonne facon de faire ???
> Dans le Petzold (Programming Windows) il cree ses
> controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création"
:-)
Ok, j'ai donc cree mon bouton dans le WM_CREATE avec
mon icone et je la detruit (l'icone) dans le WM_DESTROY
Ce n'est pas tout à fait ce qui est recommandé, mais là
on en arrive à des pratique sur nos amis les mouches que
la morale réprouve :-)
Sic Charles Petzold...
Je te remercie pour tes réponses et ta patience.
Comme tu as pu le remarquer je suis un débutant
en programmation avec l'API windows et je voudrais
commencer comme il faut...
> > J'ai donc cree mon bouton dans le WinMain et j'ai fait > LoadImage et SendMessage pour afficher mon icone et ca > marche impeccable. > > Est la bonne facon de faire ??? > Dans le Petzold (Programming Windows) il cree ses > controles dans le WM_CREATE, donc je faisais comme ca ...
Moi aussi. Relis : "dans ton code d'initialisation/création" :-)
Ok, j'ai donc cree mon bouton dans le WM_CREATE avec mon icone et je la detruit (l'icone) dans le WM_DESTROY
Ce n'est pas tout à fait ce qui est recommandé, mais là on en arrive à des pratique sur nos amis les mouches que la morale réprouve :-)
Sic Charles Petzold...
Je te remercie pour tes réponses et ta patience. Comme tu as pu le remarquer je suis un débutant en programmation avec l'API windows et je voudrais commencer comme il faut...
Matt...
Manuel Leclerc
Matt a écrit :
Comme tu as pu le remarquer je suis un débutant en programmation avec l'API windows et je voudrais commencer comme il faut...
Quel est ton but ?
Matt a écrit :
Comme tu as pu le remarquer je suis un débutant
en programmation avec l'API windows et je voudrais
commencer comme il faut...
Comme tu as pu le remarquer je suis un débutant en programmation avec l'API windows et je voudrais commencer comme il faut...
Quel est ton but ?
Matt
"Manuel Leclerc" a écrit dans le message news: 4016d389$
Matt a écrit :
> Comme tu as pu le remarquer je suis un débutant > en programmation avec l'API windows et je voudrais > commencer comme il faut...
Quel est ton but ?
Je developpe pour mon plaisir. Au boulot, je fais un peu de VB mais a la maison juste pour le plaisir et essayer de comprendre se que je fais et d'essayer de le faire bien.
Matt.
Ps : tu penses quoi maintenant de ma facon de faire du dernier post... Fais je bien ?
"Manuel Leclerc" <manuel.leclerc@alussinan.org> a écrit dans le message
news: 4016d389$1@neottia.net...
Matt a écrit :
> Comme tu as pu le remarquer je suis un débutant
> en programmation avec l'API windows et je voudrais
> commencer comme il faut...
Quel est ton but ?
Je developpe pour mon plaisir.
Au boulot, je fais un peu de VB mais a la maison
juste pour le plaisir et essayer de comprendre se
que je fais et d'essayer de le faire bien.
Matt.
Ps : tu penses quoi maintenant de ma facon de faire
du dernier post...
Fais je bien ?
"Manuel Leclerc" a écrit dans le message news: 4016d389$
Matt a écrit :
> Comme tu as pu le remarquer je suis un débutant > en programmation avec l'API windows et je voudrais > commencer comme il faut...
Quel est ton but ?
Je developpe pour mon plaisir. Au boulot, je fais un peu de VB mais a la maison juste pour le plaisir et essayer de comprendre se que je fais et d'essayer de le faire bien.
Matt.
Ps : tu penses quoi maintenant de ma facon de faire du dernier post... Fais je bien ?
Manuel Leclerc
Matt a écrit :
Manuel Leclerc a écrit :
> Quel est ton but ?
Je developpe pour mon plaisir. Au boulot, je fais un peu de VB mais a la maison juste pour le plaisir et essayer de comprendre se que je fais et d'essayer de le faire bien.
Super.
Essayes de garder l'esprit ouvert. Il n'y a pas que le SDK, il n'y a pas que le fenêtrage, et il paraîtrait même qu'il n'y a pas que Windows.
Je te dis ça, parce que _parfois_ on se met à apprendre quelque chose, ça marche, on est content, on progresse, mais en même temps, on se met des oeillères. Ceci dit, explorer Win32, c'est une chose que tout "honnête homme" devrait avoir fait :-)
Tu es plutôt branché fenêtrage/grahisme/ergonomie ou système/thread/réseaux ?
Ps : tu penses quoi maintenant de ma facon de faire du dernier post... Fais je bien ?
Je crois, mais je peux me tromper.
Matt a écrit :
Manuel Leclerc a écrit :
> Quel est ton but ?
Je developpe pour mon plaisir.
Au boulot, je fais un peu de VB mais a la maison
juste pour le plaisir et essayer de comprendre se
que je fais et d'essayer de le faire bien.
Super.
Essayes de garder l'esprit ouvert. Il n'y a pas que
le SDK, il n'y a pas que le fenêtrage, et il paraîtrait
même qu'il n'y a pas que Windows.
Je te dis ça, parce que _parfois_ on se met à apprendre
quelque chose, ça marche, on est content, on progresse,
mais en même temps, on se met des oeillères. Ceci dit,
explorer Win32, c'est une chose que tout "honnête homme"
devrait avoir fait :-)
Tu es plutôt branché fenêtrage/grahisme/ergonomie ou
système/thread/réseaux ?
Ps : tu penses quoi maintenant de ma facon de faire
du dernier post...
Fais je bien ?
Je developpe pour mon plaisir. Au boulot, je fais un peu de VB mais a la maison juste pour le plaisir et essayer de comprendre se que je fais et d'essayer de le faire bien.
Super.
Essayes de garder l'esprit ouvert. Il n'y a pas que le SDK, il n'y a pas que le fenêtrage, et il paraîtrait même qu'il n'y a pas que Windows.
Je te dis ça, parce que _parfois_ on se met à apprendre quelque chose, ça marche, on est content, on progresse, mais en même temps, on se met des oeillères. Ceci dit, explorer Win32, c'est une chose que tout "honnête homme" devrait avoir fait :-)
Tu es plutôt branché fenêtrage/grahisme/ergonomie ou système/thread/réseaux ?
Ps : tu penses quoi maintenant de ma facon de faire du dernier post... Fais je bien ?