begin process at 2010 02 10 02:15:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

LoadBitmap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

LoadBitmap

dimanche 25 avril 2004 à 18:11:09 | LoadBitmap

Corn51

Bonjour, Je suis en MFC, je souhaite afficher une image de diode verte lorsque je clique su un bouton et une rouge a la place de la verte, lorsque je reclique sur le bouton. Mais lorsque je clique une nouvelle fois sur le bouton pour réafficher la verte, plantage au niveau du LoadBitmap. Je suppose que cela doit être du au fait que l'image est déjà chargée.
Le problème se pose aussi quand je ferme la fenêtre et que je la rouvre.

Savez vous comment faire une sorte de UnLoadBitmap ?

Voici mon code :

void CAutoDlg::Vert()
{
m_Vert.LoadBitmap(IDB_VERT);

CDC * pDC = GetDC(); //Obtient le contexte de dessin courant
CDC dcMemoire_V; //Crée un Contexte Mémoire
dcMemoire_V.CreateCompatibleDC(pDC); //Rend le contexte mémoire compatible avec le contexte d'écran
dcMemoire_V.SelectObject(&m_Vert); // Sélectionne l'image dans le contexte mémoire

pDC->BitBlt(50,18,40,40,&dcMemoire_V,0,0,SRCCOPY);

ReleaseDC(pDC); //Rend le contexte d'affichage au systéme
}

void CAutoDlg::Rouge()
{
m_Rouge.LoadBitmap(IDB_ROUGE);

CDC * pDC = GetDC(); //Obtient le contexte de dessin courant
CDC dcMemoire_R; //Crée un Contexte Mémoire
dcMemoire_R.CreateCompatibleDC(pDC); //Rend le contexte mémoire compatible avec le contexte d'écran
dcMemoire_R.SelectObject(&m_Rouge); // Sélectionne l'image dans le contexte mémoire

pDC->BitBlt(50,18,40,40,&dcMemoire_R,0,0,SRCCOPY);

ReleaseDC(pDC); //Rend le contexte d'affichage au systéme
}

Merci d'avance a toute personne pouvant m'aider.

lundi 26 avril 2004 à 20:53:22 | Re : LoadBitmap

bdkiller

Je sais pas comment le faire en VC, mais sous borland c'est assez simple:

1/ Tu charges l'image, mais l'option Visible est false
2/ Lors du click tu la rends visible
3/ lors du reclick tu la rends de nouveau invisible

et tu decharges la bitmap que lorsqu'elle te serve plus :)

T'as essayé cette methode? :p
lundi 26 avril 2004 à 21:01:35 | Re : LoadBitmap

bdkiller

Tiens, un petit exemple en bcb (borland c++ builder):


//Quand on appui sur le Button1
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//On rends l'image visible
Form1->Image1->Visible = true;
}
//---------------------------------------------------------------------------
//Lors de la création de la form
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//On charge l'image
Form1->Image1->Picture->LoadFromFile("monimage.bmp");
//On rends l'image invisible
Form1->Image1->Visible = false;
}


Donc, voilà, c'est assez simple, l'image est chargée et rendue invisible, l'utilisateur ne la voit pas, quand tu cliques sur le boutton, on l'affiche.. c'est pas la peine de charger et decharger million de fois.
mardi 27 avril 2004 à 14:42:27 | Re : LoadBitmap

Corn51

Je viens de remarquer qu'il y a un code source !

J'aurais du chercher avant de poser la question.

Merci quand même bdkiller.


Cette discussion est classée dans : mémoire, pdc, contexte, loadbitmap, dcmemoire


Répondre à ce message

Sujets en rapport avec ce message

Pointeur qui fait planter Windows !!! [ par coyito ] Salutquand je défini moi même une addresse pour un pointeur (exemple pour lire n'importe ou dans la mémoire) j'ai une erreur windows "access violation Segmenter un fichier en mémoire C (seulement) [ par golum ] Voila pour ouvrir a partir de mon prog c un fichier de 20 Mo je met 1min et j'aimerais a tout pris diminuer ce temps.Est-il possible de segmenter le f Contexte de périphérique [ par Cookie ] Comment recupérer le contexte de périphérique d'une fenêtre SDI crée par MFC?Si vous détenez la reponse nesité pas a me l'envoyer car la je bloque lol plusieur fenetre mais une seule en mémoire... [ par Xs ] Bon, voila.Quand je fais une nouvelle fenetre avec un code ressemblant a ca : hwnd = CreateDialog(...);ShowWindow(hwnd,SW_SHOW);......bon, et bien il pb mémoire [ par MELISA ] Bonjour à tous,Voici mon pb: lorsque j'exécute mon projet, à un moment donné l'erreur suivante s'affiche: "L'instruction à "0x5f41194f" emploie l'adre Mémoire partgé [ par Sade ] Salut tous le monde,Je souhaiterai partger un espace mémoire (la même adresse), entre plusieur programme distinct fonctionnent sur le même PC.comment pb de pointeur sur la mémoire de la carte vidéo [ par NeoFab ] Salut à tous!J'étudie en ce moment la programmation en C sous Turbo c++ pour faire du graphisme, en écrivant directement dans la mémoire de la carte v Pb de DoModal() !!!!!! [ par wanny ] Bonjour. Je n'arrive pas à afficher une boite de dialogue que j'ai défini dans un contexte particulier. Je m'explique : cette boite fonctionne très bi Codage du JPEG en mémoire [ par Subarufr ] Je réalise comme projet d'informatique un prgm de stéganographi (cryptage par l'image) j'aimerais donc savoir comment un codé un fichier JPEG en mémoi erreur "ne peut etre un read" [ par Sade ] Salut a tous le monde.Dans le programme que j'ai develoP, j'utilise le FileMapping pour pouvoir echange des données entre deux programme distinct fonc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales