Afficher un bitmap sur un bouton - C++ - Programmation
Marsh Posté le 09-08-2003 à 17:23:09
tant qu'à faire, comment on met un info-bulle sur un bouton?
Marsh Posté le 09-08-2003 à 17:39:34
jvais ptet dire nimporte quoi mais si tu recupere le handle du bouton et que tu fait un bitblt dessus ?????????
Marsh Posté le 09-08-2003 à 17:47:39
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...
Marsh Posté le 09-08-2003 à 18:29:50
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...
Marsh Posté le 09-08-2003 à 19:00:43
normal faut faire le message WM_PAINT sinon jamais reaffiche
Marsh Posté le 09-08-2003 à 20:36:23
sinon, on peut aussi ajouter le style ownderdraw au bouton, attraper le msg WM_OWNERDRAW et mettre un code du genre :
Code :
|
Marsh Posté le 10-08-2003 à 10:48:34
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
Marsh Posté le 10-08-2003 à 10:59:45
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??? |
ben MFC...
Marsh Posté le 10-08-2003 à 11:51:13
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??? |
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
Marsh Posté le 10-08-2003 à 12:15:39
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) ?
Marsh Posté le 10-08-2003 à 15:15:51
kfman a écrit : Question en aparté: |
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)
Marsh Posté le 11-08-2003 à 10:38:17
jesus_christ a écrit : oui, ça marche pour les structures et les objets, s'ils ne sont pas private. |
Merci beaucoup, je te remercie. C'était effectivement à ce genre de procédé que j'avais dans l'idée.
Marsh Posté le 11-08-2003 à 10:41:22
Procédé qui n'a rien à voir avec Visual C++ au passage ...
Marsh Posté le 12-08-2003 à 09:06:37
jesus_christ a écrit : oui, ça marche pour les structures et les objets, s'ils ne sont pas private. |
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?
Marsh Posté le 12-08-2003 à 10:17:18
red faction a écrit : |
tu codes toujours tout à la main, tu n'utilises jamais de librairies toute faites ? (MFC, STL, ...)
Marsh Posté le 12-08-2003 à 10:22:09
ReplyMarsh Posté le 12-08-2003 à 10:43:52
antp a écrit : |
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
Marsh Posté le 12-08-2003 à 13:36:03
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...
Marsh Posté le 14-08-2003 à 18:48:27
rufo a écrit : |
"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...
Marsh Posté le 14-08-2003 à 18:49:54
rufo 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
Marsh Posté le 15-08-2003 à 09:58:17
jesus_christ a écrit : oui, hBitmap c'est le handle. |
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.
Marsh Posté le 09-08-2003 à 17:15:54
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