Accueil > Forum > > > > Diaporama d'images bitmaps... le plus simple possible...
Diaporama d'images bitmaps... le plus simple possible...
jeudi 22 avril 2004 à 10:10:01 |
Diaporama d'images bitmaps... le plus simple possible...

Druith2
|
Bonjour, je galère depuis le début de la semaine (je suis un neophyte veritable). Je cherche un moyen simple pour créer un diaporama de 12 images bitmaps. Alors, j'arrive à afficher un bitmap tt seul. Mais je ne sais pas comment modifier mon code pour que disons toutes les 0.5 secondes, un autre prenne sa place et ce en boucle... J'ai pensé à creer un timer... mais je ne sais pas où le placer dans mon code ni comment l'utiliser... Je peux toujours vous proposer mon code de départ, meme i je sais qu'il me faut le modifier pas mal... Je remercie ceux qui accepteront de me guider... J'ai vraiment besoin de ce programme et je désespère.... LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam) {
static HBITMAP hbitmap; // pour le bitmap
switch (message2) { case WM_KEYDOWN: switch(wParam) { case VK_UP: // creation d'un rectangle RECT rect; rect.top=0; rect.left=0; rect.bottom=0; rect.right=0; // maintenant k change la valeur des couleurs des pixels k+=50; if(k>250) k=0; // on demande à redessiner la zone de rect avec un message WM_PAINT InvalidateRect(fenetre2,&rect,FALSE); break; case VK_ESCAPE: DestroyWindow(fenetre2); break; default: break; } break;
case WM_PAINT: HDC hdc;HDC hdcMemory; PAINTSTRUCT ps; hdc=BeginPaint(fenetre2,&ps); // un bitmap BITMAP bm; hbitmap=(HBITMAP) LoadImage(NULL,"menu.bmp",IMAGE_BITMAP,nHori,nVert,LR_LOADFROMFILE); hdcMemory=CreateCompatibleDC(NULL); SelectObject(hdcMemory,hbitmap); GetObject(hbitmap,sizeof(bm),&bm); BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcMemory,0,0,SRCCOPY); DeleteDC(hdcMemory); EndPaint(fenetre2,&ps); break;
// Fermeture du programme case WM_DESTROY: DeleteObject(hbitmap); //--> supprime le bmp // Ferme le programme PostQuitMessage(0); break;
|
(j'ai piqué ce code sur TEXEL et je l'ai remis à ma sauce, donc y'a des chances pour qu'il ne soit po tres bo... :/ )
|
|
jeudi 22 avril 2004 à 10:11:45 |
Re : Diaporama d'images bitmaps... le plus simple possible...

Druith2
|
oups, j'avais pas fait gaffe que ca faisait un mini troll... "Les fous sont aux échecs les plus proches des rois" 
|
|
jeudi 22 avril 2004 à 11:59:16 |
Re : Diaporama d'images bitmaps... le plus simple possible...

ymca2003
|
création du Timer (dans WM_CREATE par ex): SetTimer(hWnd, 0x100, 500, NULL); 0x100 : Id du timer créé 500 : cadence en ms.
en suite, toute les 500ms le message WM_TIMER est envoyé, il te suffit de le gérer, de modifier le bitmap à afficher et de redemander l'affichage de la fenêtre : InvalidateRect(hWnd, NULL, FALSE); UpdateWindow(hWnd); le dernier paramètre de InvalidateRect indique de ne pas redessiner le fond (pour éviter un clignotement et utilie si ton bitrmap à dessiner prend toute la fenêtre).
|
|
jeudi 22 avril 2004 à 14:00:14 |
Re : Diaporama d'images bitmaps... le plus simple possible...

Druith2
|
Merci, j'y vois un peu plus clair. Je vais voir ce que je vais reussir à en faire. "Les fous sont aux échecs les plus proches des rois" 
|
|
jeudi 22 avril 2004 à 18:05:01 |
Re : Diaporama d'images bitmaps... le plus simple possible...

Druith2
|
Voilà ce que j'ai fait : case WM_TIMER: // timer : changement des bitmaps bool time; char* bmp; int i = 0; time = SetTimer(fenetre2, 0x100, 500, NULL); // 0x100 = id timer | 500 : durée timer if(int time = true) { // quand le message du timer est envoyé i++ ; } switch(i) { case 1 : bmp = "./bmp/image.bmp"; // change la date de bmp (titre du bmp à changer) break; case 2 : bmp = "./bmp/image2.bmp"; break; case 3 : bmp = "./bmp/image3.bmp"; break; default : i = 0 ; //réinitialisation du compteur } } plus loin, j'ai mis : hbitmap=(HBITMAP) LoadImage(NULL,bmp,IMAGE_BITMAP,nHori,nVert,LR_LOADFROMFILE); Ceci dit, mon compilateur (dev-C++) refuse de compiler en me disant pour la ligne d'apres qui est : case WM_KEYDOWN: (voir script complet précédent post) --> jump to case label Quelqu'un comprend mon problème ?? Merci d'avance "Les fous sont aux échecs les plus proches des rois" 
|
|
vendredi 23 avril 2004 à 00:48:34 |
Re : Diaporama d'images bitmaps... le plus simple possible...

ymca2003
|
le SetTimer est à mettre dans WM_CREATE, ce qui crée un timer qui va envoyer le message WM_TIMER, ta variable de compteur (i, mais à rennomer en qqchose de plus "parlant") doit être globale, ainsi que bmp.
case WM_TIMER: // timer : changement des bitmaps i++ ;
switch(i) { case 1 : bmp = "./bmp/image.bmp"; // change la date de bmp (titre du bmp à changer) break; case 2 : bmp = "./bmp/image2.bmp"; break; case 3 : bmp = "./bmp/image3.bmp"; break; default : i = 0 ; //réinitialisation du compteur }
pour l'erreur, surrement un pb de paire {} mal équlibére entre les switch et les case (fait des sous-fct pour les case de la WndProc, ce sera plus clair).
|
|
vendredi 23 avril 2004 à 10:53:25 |
Re : Diaporama d'images bitmaps... le plus simple possible...

Druith2
|
Merci encore une fois. Maintenant, j'ai ca : LRESULT CALLBACK WinProc(HWND fenetre2, UINT message2, WPARAM wParam, LPARAM lParam) { //variables globales static HBITMAP hbitmap; // pour le bitmap int diapo = 0; //variable de compteur char* filename; // variable de nom de fichier
switch (message2) { case WM_CREATE: SetTimer(fenetre2, 101, 500, NULL); case WM_TIMER: // timer : changement des bitmaps diapo++; switch(diapo) { case 1 : filename = "./bmp/1984.bmp"; // chnage la date de bmp (titre du bmp à changer) break; case 2 : filename = "./bmp/1987.bmp"; break; case 3 : filename = "./bmp/1989.bmp"; break; [...] case 11 : filename = "./bmp/2004.bmp"; break; default : diapo = 0 ; }
|
Et au niveau de l'affichage du bitmap : hbitmap=(HBITMAP) loadImage(NULL,filename,IMAGE_BITMAP,nHori,nVert,LR_LOADFROMFILE);
|
Je détruit le setTimer ds le WM_DESTROY, tout se compile à merveille, mais lorsque je lance l'execution, aucune image ne s'affiche à l'écran...  "Les fous sont aux échecs les plus proches des rois"
|
|
vendredi 23 avril 2004 à 23:26:59 |
Re : Diaporama d'images bitmaps... le plus simple possible...

ymca2003
|
tes variables diapo et filename ne sont toujours pas globales. met les ststic aussi ou met les en dhors du copr de WndProc.
|
|
Cette discussion est classée dans : code, break, rect, bitmap, hbitmap
Répondre à ce message
Sujets en rapport avec ce message
Creation d'une Bitmap en niveaux de gris (256 ou 65536) [ par carolivier ]
Bonjour,Je cherche un bout de code me permettant de creer (pour l'affichage, pasbesoin) une Bitmap en 256 (ou 65536) niveaux de gris. a chaque fois, j
Creation d'une Bitmap en niveaux de gris (256 ou 65536) [ par carolivier ]
Bonjour,Je cherche un boutb de code me permettant de creer (pour l'affichage, pasbesoin) une Bitmap en 256 (ou 65536) niveaux de gris. a chaque fois,
Bitmap [ par zainal ]
Salut a vousbon voila, je voudrai afficher une bitmap dans une zone de static et j ai creer ce bout de code qui ne marche pas vous vous en douter !voi
Problème de parent [ par chamomagik ]
Je désire créer une combo box dans le code avec visual cpp mais je ne comprends pas ce qu'est un "pParentWnd".voici l'aide de MSDN que je ne comprends
Loader une image [ par DjGonk ]
Slt je voudrais loader une image de mes resouces dans un controle static: mon code c'est:CStatic *set=(CStatic*) (GetDlgItem(IDC_STATIC_COUVL));CRect
Problème incompréhensible [ par CyberP ]
Dans un callback d'une fenêtre, j'ai inséré ce code :case WM_PAINT:{ PAINTSTRUCT peindre; HDC rect; rect = BeginPaint(hWnd, &peindre); Engine.dr
Problème de GROS débutant : DeviceContext et dessin... [ par tempirate ]
Je débute en visual c++ (amateurisme total) et j'ai commencé par faire un tout ptit logiciel de dessin..mais je n'arrive pas à trouver une fonction qu
Dimensions fenetre [ par coockiesch ]
Hello et re-hello!!!Je cherche à adapter la taille d'un controle à la taille d'une fenetre lors de la création de celui-ci.Voici mon code (dans WM_CRE
SetClipboardData + CF_BITMAP [ par vecchio56 ]
J'essaye de mettre un bitmap dans la clipboard, mais vu que je ne sais pas trop comment ca marche les bitmap, je galère un peu. Voila ou j'en suis:HBI
Accelération affichage image bitmap [ par corben dallas ]
Bonjour à tous,Mon problème est le suivant: je cherche à afficher un flux vidéo constitué d'images bitmap dans une fenêtre. Mon code est le suivant:dc
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|