2017-06-08 3 views
1

J'essaye de charger un bitmap dans un contrôle CStatic. Dans mon dialogue, j'ai un contrôle CStatic auquel je fais référence par _myStatic. Dans ma méthode OnInitDialog pour la boîte de dialogue je suis en train de brancher le contrôle à cette variable et je modifie le style à SS_BITMAP par _myStatic.ModifyStyle(0,SS_BITMAP);. La ligne après que j'ai _myStatic.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)));, mais le bitmap n'apparaît pas dans le CStatic. Ai-je manqué une étape dans le processus? Le bitmap est défini dans mes ressources.Chargement d'un bitmap dans un contrôle CStatic?

+0

Avez-vous appelé 'UpdateWindow()'? Certaines propriétés d'une fenêtre sont mises en cache et leur modification peut nécessiter l'appel de 'UpdateWindows()' pour mettre à jour les valeurs mises en cache. –

+0

Avez-vous vérifié que 'LoadBitmap()' ne retourne pas un handle NULL? Avez-vous le même problème avec 'LoadImage()'? Vous devriez quand même l'utiliser, car 'LoadBitmap()' est obsolète. –

Répondre

1

Vous devez fournir un premier argument non NULL à l'appel LoadBitmap. En passant l'appel, assurez-vous que l'argument SetBitmap est également non-NULL.

_myStatic.SetBitmap(::LoadBitmap(
    _AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_BITMAP1)));