Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1394 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Afficher un bitmap sur un bouton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher un bitmap sur un bouton

n°482062
rufo
Pas me confondre avec Lycos!
Posté le 09-08-2003 à 17:15:54  profilanswer
 

Voilà, j'utilise VC++ et je voudrais afficher une ressource BITMAP sur une ressource BOUTON sans utiliser (si c'est possible) les MFC. Comment je dois faire, svp? Merci beaucoup :jap:

mood
Publicité
Posté le 09-08-2003 à 17:15:54  profilanswer
 

n°482063
rufo
Pas me confondre avec Lycos!
Posté le 09-08-2003 à 17:23:09  profilanswer
 

tant qu'à faire, comment on met un info-bulle sur un bouton?

n°482067
red factio​n
Posté le 09-08-2003 à 17:39:34  profilanswer
 

jvais ptet dire nimporte quoi mais si tu recupere le handle du bouton et que tu fait un bitblt dessus ?????????

n°482070
rufo
Pas me confondre avec Lycos!
Posté le 09-08-2003 à 17:47:39  profilanswer
 

red faction a écrit :

jvais ptet dire nimporte quoi mais si tu recupere le handle du bouton et que tu fait un bitblt dessus ?????????


 
j'y ai pensé, mais je me demandais si y'avais pas plus direct. D'autre part, comment on fais pour récupéré le handle d'une ressource BOUTON?... Je suis des fois un peu boulet...

n°482083
rufo
Pas me confondre avec Lycos!
Posté le 09-08-2003 à 18:29:50  profilanswer
 

red faction a écrit :

jvais ptet dire nimporte quoi mais si tu recupere le handle du bouton et que tu fait un bitblt dessus ?????????


 
je viens d'essayer, ça marche pas terrible. l'image s'efface dès qu'un objet passe par-dessus...

n°482087
VisualC++
J'va y penser ...
Posté le 09-08-2003 à 19:00:43  profilanswer
 

normal faut faire le message WM_PAINT sinon jamais reaffiche

n°482137
Konar
Posté le 09-08-2003 à 20:36:23  profilanswer
 

sinon, on peut aussi ajouter le style ownderdraw au bouton, attraper le msg WM_OWNERDRAW et mettre un code du genre :
 

Code :
  1. LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
  2. HDC hdcMem = CreateCompatibleDC(lpdis->hDC);
  3. SelectObject(hdcMem, gl_hBit);
  4. BitBlt(lpdis->hDC,
  5. lpdis->rcItem.left,
  6. lpdis->rcItem.top,
  7. lpdis->rcItem.right - lpdis->rcItem.left,
  8. lpdis->rcItem.bottom - lpdis->rcItem.top,
  9. hdcMem,
  10. 0, 0,
  11. SRCCOPY);
  12. DeleteDC(hdcMem);

n°482321
rufo
Pas me confondre avec Lycos!
Posté le 10-08-2003 à 10:48:34  profilanswer
 

sérieux, rien de plus simple??? en Delphi, y'a juste à associer une icône ou un bmp à un bouton via l'inspecteur d'objets et c'est fini. MS en est à sa version 6 de VC++; vous allez pas me dire qu'iuls ont pas été foutus de faire un truc du même genre dans l'éditeur de ressources??? :??:
 
Si c'est pas le cas, M$ est vraiment un boulet :gun:

n°482326
antsite
Je me souviens
Posté le 10-08-2003 à 10:59:45  profilanswer
 

rufo a écrit :

sérieux, rien de plus simple??? en Delphi, y'a juste à associer une icône ou un bmp à un bouton via l'inspecteur d'objets et c'est fini. MS en est à sa version 6 de VC++; vous allez pas me dire qu'iuls ont pas été foutus de faire un truc du même genre dans l'éditeur de ressources??? :??:
 
Si c'est pas le cas, M$ est vraiment un boulet :gun:


 
ben MFC...

n°482341
red factio​n
Posté le 10-08-2003 à 11:51:13  profilanswer
 

rufo a écrit :

sérieux, rien de plus simple??? en Delphi, y'a juste à associer une icône ou un bmp à un bouton via l'inspecteur d'objets et c'est fini. MS en est à sa version 6 de VC++; vous allez pas me dire qu'iuls ont pas été foutus de faire un truc du même genre dans l'éditeur de ressources??? :??:
 
Si c'est pas le cas, M$ est vraiment un boulet :gun:


 
ben tu sais c qd mieux de faire comme ca que utiliser vb ou delphi qui utilisent leur propre librairies avec on ne sait quoi dedans

mood
Publicité
Posté le 10-08-2003 à 11:51:13  profilanswer
 

n°482358
kfman
Credo quia absurdum
Posté le 10-08-2003 à 12:15:39  profilanswer
 

Question en aparté:
 
Est-ce que les "->" dans c++ correspondent a celles du C (accès aux données d'une structure à partir d'un pointeur) ?
 
 

n°482502
jesus_chri​st
votre nouveau dieu
Posté le 10-08-2003 à 15:15:51  profilanswer
 

kfman a écrit :

Question en aparté:
 
Est-ce que les "->" dans c++ correspondent a celles du C (accès aux données d'une structure à partir d'un pointeur) ?

oui, ça marche pour les structures et les objets, s'ils ne sont pas private.
 
sinon, pour les bouton :
 
dans l'éditeur, mettre le style "Bitmap"
et il y a ensuite dans le code qui gère la boite à envoyer au bouton un message "BM_SETIMAGE" ou un truc du genre, je le fait souvent et je sais que ça prend 2 lignes :
 
- charger la resource bitmap avec "LoadBitmap"
- et faire un SendDlgItemMessage(hDlg, IDC_MONBOUTON, BM_SETIMAGE, IMAGE_BITMAP, hBitmap)


Message édité par jesus_christ le 10-08-2003 à 15:16:39

---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°483115
rufo
Pas me confondre avec Lycos!
Posté le 11-08-2003 à 10:38:17  profilanswer
 

jesus_christ a écrit :

oui, ça marche pour les structures et les objets, s'ils ne sont pas private.
 
sinon, pour les bouton :
 
dans l'éditeur, mettre le style "Bitmap"
et il y a ensuite dans le code qui gère la boite à envoyer au bouton un message "BM_SETIMAGE" ou un truc du genre, je le fait souvent et je sais que ça prend 2 lignes :
 
- charger la resource bitmap avec "LoadBitmap"
- et faire un SendDlgItemMessage(hDlg, IDC_MONBOUTON, BM_SETIMAGE, IMAGE_BITMAP, hBitmap)


 
Merci beaucoup, je te remercie. C'était effectivement à ce genre de procédé que j'avais dans l'idée. :)

n°483124
HelloWorld
Salut tout le monde!
Posté le 11-08-2003 à 10:41:22  profilanswer
 

Procédé qui n'a rien à voir avec Visual C++ au passage ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°484466
rufo
Pas me confondre avec Lycos!
Posté le 12-08-2003 à 09:06:37  profilanswer
 

jesus_christ a écrit :

oui, ça marche pour les structures et les objets, s'ils ne sont pas private.
 
sinon, pour les bouton :
 
dans l'éditeur, mettre le style "Bitmap"
et il y a ensuite dans le code qui gère la boite à envoyer au bouton un message "BM_SETIMAGE" ou un truc du genre, je le fait souvent et je sais que ça prend 2 lignes :
 
- charger la resource bitmap avec "LoadBitmap"
- et faire un SendDlgItemMessage(hDlg, IDC_MONBOUTON, BM_SETIMAGE, IMAGE_BITMAP, hBitmap)


 
snif : ça marche pas :( hbitmap, c'est bien le handle qui est renvoyé par LoadBitmap?
 
Par contre, est-ce-que je dois rajouter du code dans ma fonction chargée de traiter les msg Windows?

n°484586
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-08-2003 à 10:17:18  profilanswer
 

red faction a écrit :


 
ben tu sais c qd mieux de faire comme ca que utiliser vb ou delphi qui utilisent leur propre librairies avec on ne sait quoi dedans  


 
tu codes toujours tout à la main, tu n'utilises jamais de librairies toute faites ? (MFC, STL, ...) :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°484593
HelloWorld
Salut tout le monde!
Posté le 12-08-2003 à 10:22:09  profilanswer
 

Tu as créé ton bouton avec le style BS_BITMAP ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°484626
red factio​n
Posté le 12-08-2003 à 10:43:52  profilanswer
 

antp a écrit :


 
tu codes toujours tout à la main, tu n'utilises jamais de librairies toute faites ? (MFC, STL, ...) :D


 
non evidement, souvent le temps de devellopement est tres court et la t bien content davoir les librairies ...
 
 
quoi que un ptit push 0 push 0412452 push 0412544 call _msgbox jaime encore bien   :whistle:


Message édité par red faction le 12-08-2003 à 11:59:37
n°484805
rufo
Pas me confondre avec Lycos!
Posté le 12-08-2003 à 13:36:03  profilanswer
 

HelloWorld a écrit :

Tu as créé ton bouton avec le style BS_BITMAP ?


 
mon bouton, je l'ai créé avec l'éditeur de ressources et je l'ai mis à "ownerdraw" et "bitmap"...
 
par rapport aux MFC, vu que j'ai pas mal avancé sans utilisé les MFC, j'aimerais autant continuer sans...

n°487576
jesus_chri​st
votre nouveau dieu
Posté le 14-08-2003 à 18:48:27  profilanswer
 

rufo a écrit :


 
mon bouton, je l'ai créé avec l'éditeur de ressources et je l'ai mis à "ownerdraw" et "bitmap"...
 
par rapport aux MFC, vu que j'ai pas mal avancé sans utilisé les MFC, j'aimerais autant continuer sans...

"ownerdraw" et "bitmap" c'est différent, pour une image dessus, bitmap, pour redessiner tout le bouton, même les bord, ownerdrawn.
 
je sais même pas si c'est compatible...


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°487579
jesus_chri​st
votre nouveau dieu
Posté le 14-08-2003 à 18:49:54  profilanswer
 

rufo a écrit :


 
snif : ça marche pas :( hbitmap, c'est bien le handle qui est renvoyé par LoadBitmap?
 
Par contre, est-ce-que je dois rajouter du code dans ma fonction chargée de traiter les msg Windows?

oui, hBitmap c'est le handle.
je crois que mes 2 lignes de codes suffisent, dans le WM_INITDIALOG, et le DeleteObject dans le WM_DESTROY pour libérer le handle.
essaye sans le ownerdrawn


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°487968
rufo
Pas me confondre avec Lycos!
Posté le 15-08-2003 à 09:58:17  profilanswer
 

jesus_christ a écrit :

oui, hBitmap c'est le handle.
je crois que mes 2 lignes de codes suffisent, dans le WM_INITDIALOG, et le DeleteObject dans le WM_DESTROY pour libérer le handle.
essaye sans le ownerdrawn


 
ok, merci, je vais réessayer. Moi, je mettais les 2 (ownerdraw et bitmap, parce que si j'enlevais bitmap, l'icône s'effaçait quand un autre objet passait dessus). Par contre, je mettais pas mon code dans WM_INITDIALOG.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Afficher un bitmap sur un bouton

 

Sujets relatifs
Comment afficher un panorama proprement et legerement...Afficher sur mon site les données recuperer sur un fichier xml.
afficher une Jlist apres l'affichage de tous les composants[VB] lancer un .bat a partir d'un bouton
afficher une image avec un fond transparent par dessus un objet multi-[HTML] Adapter la hauteur de ce qu'on veut afficher
Appeler une URL, mais sans l'afficher[C Windows] Afficher l'IP ou l'hostname de la machine
[EXCEL] afficher le nom de la personne la plus agétags HTML dans un textarea en cliquant sur un bouton (HFR style)
Plus de sujets relatifs à : Afficher un bitmap sur un bouton


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR