Fond d'écran dans une dialogbox [Résolu]

Signaler
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Bonjour,

je me demandais si il était possible de mettre dans une boite de dialogue, un fond d'ecran jpg,gif ou bmp et si oui comment

6 réponses

Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006

Je te conseille d'allez voir cette FAQ.

En telechargeant le lien du trouvera la class CPicture te permettant de charger a partir d'un chemin un fichier jpg ou bmp en arriere plan.
La classe a la bonne idee de recalculer et de remettre en forme l'image en fct de la taille du dialog.

http://c.developpez.com/faq/vc/?page=CDialog#SetBkgndBitmapOnDlg

TOCHE
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Oui c'est possible.

En interceptant WM_PAINT ou en interceptant WM_ERASE par exemple.
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Me suis planté c'est WM_ERASEBKGND et je viens de me souvenir de la troisieme methode.



Tu met ton image dans une BRUSH et tu traites


case WM_CTLCOLORDLG:


if (hbDialog) { return (INT_PTR)hbDialog; }



Mais la meilleure facon c'est de passer par WM_PAINT.
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

:s j'savais qu'on pouvais faire des dessins genre des carrés, des ronds, mais comment prendre une image qui existe déja pour la mettre...
Messages postés
571
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
5 décembre 2013

Il te faut avoir un handle sur ton image le plus simple HBITMAP. Tu dit "une image qui existe déja" mais elle existe ou ??.



exemple dansWM_paint



GetClientRect(); tu as les coordonnées du dialog.

BeginPaint(); tu as le HDC de ton dialog.



Le handle de ton image.

GetObject() pour avoir les info de ton image (taille,etc ....)



ll te reste plus qu'a l'afficher avec BitBlt() en mosaique ou etirée selon tes souhaits StretchBlt().
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

ok merci a vous deux ca a pas l'air super simple mais ouai pourquoi pas, quand faut coder faut coder :D