Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

JOUER UNE VIDÉO AVI (SANS MFC)


Information sur la source

Catégorie :Multimédia Niveau : Débutant Date de création : 08/01/2003 Date de mise à jour : 08/01/2003 09:17:28 Vu / téléchargé: 4 443 / 713

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Ceci est une application Win32 avec une boite de dialogue comme fenêtre principale. Le but est de fournir un exemple d'utilisation du contrôle ANIMATE directement avec les APIs Win32.

Il y a trois sources : animeDlg.cpp resource.h et dlg.rc

A ne pas oublier : linker avec comctl32.lib
nécessaire pour résoudre l'appel à InitCommonControls();

 

Source

  • //***********************************
  • //Source resource.h
  • //***********************************
  • #define IDC_ANIME 1000
  • #define IDD_DIALOGUE 1
  • //***********************************
  • //Source animeDlg.cpp
  • //***********************************
  • #include <windows.h>
  • #include <commctrl.h>// pour le contrôle ANIMATE
  • //ainsi que le link avec comctl32.lib
  • #include "resource.h"
  • BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) ;
  • int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  • {
  • InitCommonControls();// pour le contrôle ANIMATE
  • if (!DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOGUE), 0,(DLGPROC)maDlgProc))
  • {MessageBox(0,"raté","dialogue",MB_OK); return 1;}
  • MSG msg;
  • while (GetMessage(&msg, NULL, NULL, NULL)) DispatchMessage(&msg);
  • return msg.wParam;
  • }
  • BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  • case WM_INITDIALOG:
  • Animate_Open(GetDlgItem(hwndDlg, IDC_ANIME), "clock.AVI");
  • Animate_Play(GetDlgItem(hwndDlg, IDC_ANIME),0, -1, -1);
  • return true;
  • break;
  • case WM_COMMAND:
  • switch (LOWORD(wParam))
  • {
  • case IDOK:
  • PostQuitMessage(1);
  • EndDialog(hwndDlg, 0);
  • return true;
  • }
  • }
  • return false;
  • }
  • //***********************************
  • //Source dlg.rc
  • //***********************************
  • #include <windows.h>
  • #include "resource.h"
  • IDD_DIALOGUE DIALOG DISCARDABLE 0, 0, 280, 220
  • STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
  • CAPTION "une Vidéo"
  • FONT 8, "MS Sans Serif"
  • BEGIN
  • DEFPUSHBUTTON "OK",IDOK,220,20,50,50,WS_GROUP
  • CONTROL "Animate",IDC_ANIME,"SysAnimate32",WS_BORDER |
  • WS_TABSTOP,0,0,200,250
  • END
//***********************************
//Source resource.h
//***********************************
#define IDC_ANIME       1000
#define IDD_DIALOGUE	1

//***********************************
//Source animeDlg.cpp
//***********************************
#include <windows.h>
#include <commctrl.h>// pour le contrôle ANIMATE
//ainsi que le link avec comctl32.lib
#include "resource.h"


BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) ;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int  nCmdShow)
{
	InitCommonControls();// pour le contrôle ANIMATE
	
	if (!DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOGUE), 0,(DLGPROC)maDlgProc)) 
		{MessageBox(0,"raté","dialogue",MB_OK); return 1;} 
    
MSG msg;

while (GetMessage(&msg, NULL, NULL, NULL)) DispatchMessage(&msg);

      return msg.wParam; 
}


BOOL CALLBACK maDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    switch (message) 
    { 

		case WM_INITDIALOG:
		    Animate_Open(GetDlgItem(hwndDlg, IDC_ANIME), "clock.AVI");
			Animate_Play(GetDlgItem(hwndDlg, IDC_ANIME),0, -1, -1);
			return true;
			break;
	case WM_COMMAND: 
            switch (LOWORD(wParam)) 
            { 
                case IDOK: 
					PostQuitMessage(1);
					EndDialog(hwndDlg, 0);
					return true;
			}
	}
      return false;
}

//***********************************
//Source dlg.rc
//***********************************
#include <windows.h>
#include "resource.h"

IDD_DIALOGUE DIALOG DISCARDABLE  0, 0, 280, 220
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "une Vidéo"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,220,20,50,50,WS_GROUP
    CONTROL         "Animate",IDC_ANIME,"SysAnimate32",WS_BORDER | 
                    WS_TABSTOP,0,0,200,250
END

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de LordBob le 08/01/2003 10:46:58

ouais ca va pas mal... :) plutot bien d'ailleurs... ca peut toujours rendre des services...

signaler à un administrateur
Commentaire de Kaid le 08/01/2003 11:12:43

J'ai juste une petite question: a quoi sert ce bout de code:

MSG msg;
while (GetMessage(&msg, NULL, NULL, NULL)) DispatchMessage(&msg);

return msg.wParam;

signaler à un administrateur
Commentaire de vieuxLion le 08/01/2003 12:36:54

c'est bien vu, cette partie peut être remplacée par
return 0;
car il n'y a pas de fenêtre (donc pas de messages) hors la boite de dialogue.
Et DialogBox s'occupe d'envoyer les messages à la bonne procédure directement

signaler à un administrateur
Commentaire de Galett le 08/01/2003 23:45:50

toujours de bonnes sources Vieux Lion, Merci !

signaler à un administrateur
Commentaire de jeancrien le 07/07/2003 12:22:09

Bravo c'est nickel et ça va me dépanner pas mal...

signaler à un administrateur
Commentaire de samuelbrie le 28/10/2004 18:42:42

Peut on récupérer un pointeur sur la frame afin de modifier celle-ci et enregistrer soit en ume image ou un fichier modifier .avi?

signaler à un administrateur
Commentaire de pimpampoum_92 le 14/04/2005 20:45:49

Super, excellent code. Mais comment faire pour que cela fonctionne aussi avec de gros fichiers .avi?

signaler à un administrateur
Commentaire de pimpampoum_92 le 15/04/2005 04:13:26

Oups! J'ai fait quelques tests et recherche et je crois que la taille du fichier n'entre pas en compte. Par contre le code de type Animate_xxxx() ne permet que de traiter des fichier avi compressé avec MS-RLE. Comment faire pour d'autre format tel que indeo video 5????

signaler à un administrateur
Commentaire de shuttleur le 06/04/2008 16:47:41

Salut VieuxLion !

Je bosse sur ce contrôle win32 et je galère pour faire un avi compatible.

Apparemment, il faut ce format : BI_RLE8, ou un avi non compressé, mais je ne parviens pas à en faire un.

Aurais-tu utilisé un soft en particulier ?

Merci d'avance !

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,889 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.