Effacer une image sur un contrôle static

Résolu
skirby Messages postés 96 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 26 juillet 2007 - 13 mai 2007 à 11:21
skirby Messages postés 96 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 26 juillet 2007 - 14 mai 2007 à 18:08
Bonjour tout le monde,

J'aimerais effacer une image affecté à un contrôle static.
J'arrive à l'affecter sans problème mais impossible de l'effacer.

Bizarrement, ça fonctionne avec une icone mais pas avec un bitmap.

J'ai codé un exemple compilable en C ou C++ depuis n'importe quel compilateur (sinon, le projet de l'IDE Code::Blocks est disponible dans les sources)

J'ai plusieurs questions concernant cette petite source :
1./ Comment faire pour effacer le contenu de mon static simplement ?
2./ Pourquoi l'affectation de l'icone à mon static ne fonctionne que si je mets STM_SETIMAGE au lieu de STM_SETICON
3./ Cette question n'a rien à voir avec la question d'origine mais pourquoi lorsque je compile mon executable, l'icone qui se trouve dans les ressources est automatiquement associé à mon executable ?

Vous trouverez les sources de mon exemple ici:
http://www.mytempdir.com/1326668

Merci d'avance pour vos réponses et bonne journée.

1 réponse

skirby Messages postés 96 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 26 juillet 2007
14 mai 2007 à 18:08
Ok, réponse trouvée.

Pour ceux qui serait confronté au même problème que moi, il suffit en faite de faire ceci :

RECT rc;


// on récupère la zone écran du controle


GetWindowRect(g_IDC_Bmp, &rc);


// on convertit en coordonnées clientes par rapport à la boite de dialogue !


ScreenToClient(hDlg, (POINT*) &rc);


// on invalide la zone définie (juste le controle) dans la boite de dialogue (on force le refresh)


InvalidateRect(hDlg, &rc, TRUE);

Et hop, le contrôle est effacé
3
Rejoignez-nous