begin process at 2012 05 27 21:15:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > [VC6] [TPE] SIMULATION WIN32 D'UN SYSTEME D'ALARME FAIT POUR LES TPE 2004/2005

[VC6] [TPE] SIMULATION WIN32 D'UN SYSTEME D'ALARME FAIT POUR LES TPE 2004/2005


 Information sur la source

Note :
4,5 / 10 - par 2 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Débutant Date de création :16/06/2005 Date de mise à jour :17/06/2005 15:32:11 Vu / téléchargé :7 088 / 451

Auteur : MuPuF

Ecrire un message privé
Site perso
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Pour les TPE, on a choisis de faire un systeme d'alarme. N'ayant pas eu le tps de le realiser, j'ai eu l'idee de faire cette simulation.
Le code est tres bien commente (au cas ou j'aurai eu a expliquer le code).
Je trouve donc que c'est un bon tutorial pour apprendre a utiliser les images et le son en win32 facilement et avec des dialogboxes (a par pour le clavier je vois pas quoi leurs reprocher ...).

Source

  • // TPE.cpp : Defines the entry point for the application.
  • //
  • #include "stdafx.h"
  • #include "windows.h"
  • #include "mmsystem.h" //Pour le son
  • #include "resource.h"
  • #include "stdlib.h"
  • #pragma comment( lib, "winmm.lib" ) //Pour le son
  • //Prototypes
  • LRESULT CALLBACK MainCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
  • LRESULT CALLBACK InputCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
  • LRESULT CALLBACK SchemaCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
  • //Variables Globales
  • bool DOORCLOSED = true;
  • bool WINDOW1CLOSED = true;
  • bool WINDOW2CLOSED = true;
  • HINSTANCE hInstance;
  • int tempo=3000;
  • //Point d'entree du prog
  • int APIENTRY WinMain(HINSTANCE hinstance,
  • HINSTANCE hPrevInstance,
  • LPSTR lpCmdLine,
  • int nCmdShow)
  • {
  • //Declaration variables
  • MSG message;
  • hInstance=hinstance;
  • // Ouvre la Dialogbox
  • DialogBox(hinstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)MainCallBack);
  • //Recoit les msg de windows
  • while (GetMessage (&message, NULL, 0, 0))
  • {
  • TranslateMessage (&message) ;
  • DispatchMessage (&message) ;
  • }
  • return 0;
  • }
  • //CallBack du dialog Main
  • LRESULT CALLBACK MainCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • HBITMAP bmp,bmpled;
  • HWND handle;
  • switch (message)
  • {
  • case WM_INITDIALOG:
  • break;
  • case WM_COMMAND:
  • if (LOWORD(wParam) == IDC_CDOOR) //Si c'est la porte
  • {
  • handle=GetDlgItem(hwnd,IDC_CDOOR);
  • //Change l'image de la porte, de la led et enclenche/declanche le son
  • if(DOORCLOSED == true)
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_DOOROPEN));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
  • SetWindowText(handle,"Fermer Porte");
  • KillTimer(hwnd,1); // au cas ou le type reouvre la porte ....
  • PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
  • DOORCLOSED=false;
  • }
  • else
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_DOORCLOSE));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
  • SetWindowText(handle,"Ouvrir Porte");
  • DOORCLOSED=true;
  • if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
  • SetTimer(hwnd, 1, tempo, NULL);
  • }
  • //Affiche la porte
  • handle = GetDlgItem(hwnd,IDC_DOOR);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);
  • //Affiche la led
  • handle = GetDlgItem(hwnd,IDC_LED1);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
  • }
  • if (LOWORD(wParam) == IDC_CWINDOW1) //Si c'est la fenetre1
  • {
  • //Change l'image de la porte, de la led et enclenche/declanche le son
  • handle=GetDlgItem(hwnd,IDC_CWINDOW1);
  • if(WINDOW1CLOSED == true)
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWOPENED));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
  • SetWindowText(handle,"Fermer Fenetre");
  • KillTimer(hwnd,1); // au cas ou le type réouvre la porte ....
  • PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
  • WINDOW1CLOSED=false;
  • }
  • else
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWCLOSED));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
  • SetWindowText(handle,"Ouvrir Fenetre");
  • WINDOW1CLOSED=true;
  • if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
  • SetTimer(hwnd, 1, tempo, NULL);
  • }
  • //Affiche la porte
  • handle = GetDlgItem(hwnd,IDC_WINDOW1);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);
  • //Affiche la led
  • handle = GetDlgItem(hwnd,IDC_LED2);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
  • }
  • if (LOWORD(wParam) == IDC_CWINDOW2) //Si c'est la fenetre2
  • {
  • //Change l'image de la porte, de la led et enclenche/declanche le son
  • handle=GetDlgItem(hwnd,IDC_CWINDOW2);
  • if(WINDOW2CLOSED == true)
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWOPENED));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
  • SetWindowText(handle,"Fermer Fenetre");
  • KillTimer(hwnd,1); // au cas ou le type réouvre la porte ....
  • PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
  • WINDOW2CLOSED=false;
  • }
  • else
  • {
  • bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWCLOSED));
  • bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
  • SetWindowText(handle,"Ouvrir Fenetre");
  • WINDOW2CLOSED=true;
  • if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
  • SetTimer(hwnd, 1, tempo, NULL);
  • }
  • //Affiche la porte
  • handle = GetDlgItem(hwnd,IDC_WINDOW2);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);
  • //Affiche la led
  • handle = GetDlgItem(hwnd,IDC_LED3);
  • SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
  • }
  • if (LOWORD(wParam) == IDC_DTEMPO)
  • {
  • DialogBox(hInstance, (LPCTSTR)IDD_INPUTBOX, NULL, (DLGPROC)InputCallBack);
  • }
  • if (LOWORD(wParam) == IDC_CSTOPTEMPO)
  • {
  • if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
  • {
  • PlaySound(NULL, GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
  • KillTimer(hwnd,1);
  • }
  • else
  • {
  • PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
  • SetTimer(hwnd, 1, tempo, NULL);
  • }
  • }
  • if (LOWORD(wParam) == IDR_SCHEMA)
  • {
  • DialogBox(hInstance, (LPCTSTR)IDD_SCHEMA, NULL, (DLGPROC)SchemaCallBack);
  • }
  • if (LOWORD(wParam) == IDC_QUIT)
  • {
  • PostQuitMessage(0);
  • }
  • if (LOWORD(wParam) == IDC_ABOUT)
  • {
  • MessageBox(hwnd,"Fait par MùPùF pour le TPE(2004/2005) de Bigou Karim, Palayret Fabien et Peres Martin.\nCe programme (écris avec vc++ 6) montre le fonctionnement de notre systeme d'alarme gungrave.","About",MB_OK);
  • }
  • break;
  • case WM_TIMER:
  • PlaySound(NULL, GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
  • KillTimer(hwnd,1);
  • break;
  • case WM_CLOSE:
  • EndDialog(hwnd, LOWORD(wParam));
  • break;
  • case WM_DESTROY:
  • PostQuitMessage(0);;
  • break;
  • return DefWindowProc (hwnd, message, wParam, lParam);
  • }
  • return 0;
  • }
  • //CallBack du dialog InputBox
  • LRESULT CALLBACK InputCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • //Variables
  • int res;
  • HWND handle;
  • char* Ctempo;
  • switch (message)
  • {
  • case WM_INITDIALOG:
  • handle = GetDlgItem(hwnd,IDC_RES);
  • SetWindowText(handle,itoa(tempo,"",10));
  • break;
  • case WM_COMMAND:
  • if (LOWORD(wParam) == IDOK)
  • {
  • handle = GetDlgItem(hwnd,IDC_RES);
  • Ctempo=new char[7];
  • GetWindowText(handle,Ctempo,6);
  • tempo=atoi(Ctempo);
  • delete Ctempo;
  • EndDialog(hwnd, LOWORD(wParam));
  • }
  • if (LOWORD(wParam) == IDC_ANNULER)
  • {
  • res=MessageBox(hwnd,"Attention, vous allez annuler le changement de Temporisation\nEtes vous sur de vouloir ?","Attention", MB_YESNO+MB_ICONWARNING);
  • if(res==IDYES)
  • EndDialog(hwnd, LOWORD(wParam));
  • }
  • break;
  • case WM_CLOSE:
  • EndDialog(hwnd, LOWORD(wParam));
  • break;
  • return DefWindowProc (hwnd, message, wParam, lParam);
  • }
  • return 0;
  • }
  • //CallBack du dialog InputBox
  • LRESULT CALLBACK SchemaCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  • case WM_COMMAND:
  • if (LOWORD(wParam) == IDC_OK)
  • EndDialog(hwnd, LOWORD(wParam));
  • break;
  • case WM_CLOSE:
  • EndDialog(hwnd, LOWORD(wParam));
  • break;
  • return DefWindowProc (hwnd, message, wParam, lParam);
  • }
  • return 0;
  • }
// TPE.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "windows.h"
#include "mmsystem.h" //Pour le son
#include "resource.h"
#include "stdlib.h"

#pragma comment( lib, "winmm.lib" ) //Pour le son

//Prototypes
LRESULT CALLBACK MainCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK InputCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK SchemaCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);

//Variables Globales
bool DOORCLOSED = true;
bool WINDOW1CLOSED = true;
bool WINDOW2CLOSED = true;
HINSTANCE hInstance;
int tempo=3000;

//Point d'entree du prog
int APIENTRY WinMain(HINSTANCE hinstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	//Declaration variables
	MSG message;
	hInstance=hinstance;

	// Ouvre la Dialogbox
	DialogBox(hinstance, (LPCTSTR)IDD_MAIN, NULL, (DLGPROC)MainCallBack);
	
	//Recoit les msg de windows
	while (GetMessage (&message, NULL, 0, 0))
	{
		TranslateMessage (&message) ;
		DispatchMessage (&message) ;
	}

	return 0;
}

//CallBack du dialog Main
LRESULT CALLBACK MainCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	HBITMAP bmp,bmpled;
	HWND handle;

	switch (message)
	{
		case WM_INITDIALOG:	
			break;

		case WM_COMMAND:

			if (LOWORD(wParam) == IDC_CDOOR) //Si c'est la porte
			{				
				handle=GetDlgItem(hwnd,IDC_CDOOR);
				//Change l'image de la porte, de la led et enclenche/declanche le son
				if(DOORCLOSED == true)
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_DOOROPEN));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
					SetWindowText(handle,"Fermer Porte");
					KillTimer(hwnd,1); // au cas ou le type reouvre la porte ....
					PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
					DOORCLOSED=false;
				}
				else
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_DOORCLOSE));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
					SetWindowText(handle,"Ouvrir Porte");
					DOORCLOSED=true;
					if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
						SetTimer(hwnd, 1, tempo, NULL);
				}
				
				//Affiche la porte
				handle = GetDlgItem(hwnd,IDC_DOOR);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);

				//Affiche la led
				handle = GetDlgItem(hwnd,IDC_LED1);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
			}
			
			if (LOWORD(wParam) == IDC_CWINDOW1) //Si c'est la fenetre1
			{
				//Change l'image de la porte, de la led et enclenche/declanche le son
				handle=GetDlgItem(hwnd,IDC_CWINDOW1);
				if(WINDOW1CLOSED == true)
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWOPENED));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
					SetWindowText(handle,"Fermer Fenetre");
					KillTimer(hwnd,1); // au cas ou le type réouvre la porte ....
					PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
					WINDOW1CLOSED=false;
				}
				else
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWCLOSED));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
					SetWindowText(handle,"Ouvrir Fenetre");
					WINDOW1CLOSED=true;
					if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
						SetTimer(hwnd, 1, tempo, NULL);
				}
				
				//Affiche la porte
				handle = GetDlgItem(hwnd,IDC_WINDOW1);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);

				//Affiche la led
				handle = GetDlgItem(hwnd,IDC_LED2);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
			}

			if (LOWORD(wParam) == IDC_CWINDOW2) //Si c'est la fenetre2
			{
				//Change l'image de la porte, de la led et enclenche/declanche le son
				handle=GetDlgItem(hwnd,IDC_CWINDOW2);
				if(WINDOW2CLOSED == true)
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWOPENED));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDA));
					SetWindowText(handle,"Fermer Fenetre");
					KillTimer(hwnd,1); // au cas ou le type réouvre la porte ....
					PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
					WINDOW2CLOSED=false;
				}
				else
				{
					bmp = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_WINDOWCLOSED));
					bmpled = LoadBitmap((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),MAKEINTRESOURCE(IDB_LEDE));
					SetWindowText(handle,"Ouvrir Fenetre");
					WINDOW2CLOSED=true;
					if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
						SetTimer(hwnd, 1, tempo, NULL);
				}
				
				//Affiche la porte
				handle = GetDlgItem(hwnd,IDC_WINDOW2);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmp);

				//Affiche la led
				handle = GetDlgItem(hwnd,IDC_LED3);
				SendMessage(handle,STM_SETIMAGE,(WPARAM)IMAGE_BITMAP,(LPARAM) (HANDLE) bmpled);
			}

			if (LOWORD(wParam) == IDC_DTEMPO)
			{
				DialogBox(hInstance, (LPCTSTR)IDD_INPUTBOX, NULL, (DLGPROC)InputCallBack);

			}

			if (LOWORD(wParam) == IDC_CSTOPTEMPO)
			{
				if(DOORCLOSED==true && WINDOW1CLOSED==true && WINDOW2CLOSED==true)
				{
					PlaySound(NULL, GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
					KillTimer(hwnd,1);
				}
				else
				{
					PlaySound("alarme.wav", GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC|SND_LOOP );
					SetTimer(hwnd, 1, tempo, NULL);
				}

			}
			
			if (LOWORD(wParam) == IDR_SCHEMA)
			{
				DialogBox(hInstance, (LPCTSTR)IDD_SCHEMA, NULL, (DLGPROC)SchemaCallBack);
			}

			if (LOWORD(wParam) == IDC_QUIT)
			{
				PostQuitMessage(0);
			}
			
			if (LOWORD(wParam) == IDC_ABOUT)
			{
				MessageBox(hwnd,"Fait par MùPùF pour le TPE(2004/2005) de Bigou Karim, Palayret Fabien et Peres Martin.\nCe programme (écris avec vc++ 6) montre le fonctionnement de notre systeme d'alarme gungrave.","About",MB_OK);
			}
			break;

		case WM_TIMER:
			PlaySound(NULL, GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
			KillTimer(hwnd,1);
			break;

		case WM_CLOSE:
			EndDialog(hwnd, LOWORD(wParam));
			break;

		case WM_DESTROY:
			PostQuitMessage(0);;
			break;

		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}

//CallBack du dialog InputBox
LRESULT CALLBACK InputCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	//Variables
	int res;
	HWND handle;
	char* Ctempo;

	switch (message)
	{
		case WM_INITDIALOG:	
			handle = GetDlgItem(hwnd,IDC_RES);
			SetWindowText(handle,itoa(tempo,"",10));
			break;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK)
			{
				handle = GetDlgItem(hwnd,IDC_RES);
				Ctempo=new char[7];
				GetWindowText(handle,Ctempo,6);
				tempo=atoi(Ctempo);
				delete Ctempo;
				EndDialog(hwnd, LOWORD(wParam));
			}
			if (LOWORD(wParam) == IDC_ANNULER)
			{
				res=MessageBox(hwnd,"Attention, vous allez annuler le changement de Temporisation\nEtes vous sur de vouloir ?","Attention", MB_YESNO+MB_ICONWARNING);
				if(res==IDYES)
					EndDialog(hwnd, LOWORD(wParam));
			}
			
			break;

		case WM_CLOSE:
			EndDialog(hwnd, LOWORD(wParam));
			break;

		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}
//CallBack du dialog InputBox
LRESULT CALLBACK SchemaCallBack (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_COMMAND:
			if (LOWORD(wParam) == IDC_OK)
				EndDialog(hwnd, LOWORD(wParam));			
			break;

		case WM_CLOSE:
			EndDialog(hwnd, LOWORD(wParam));
			break;

		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}

 Conclusion

Bon, ben içi je laisse la place a vos commentaires !
N'hesitez pas a incendier si ya un pet en travers, je suis ouvert a toutes critiques constructives.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

17 juin 2005 15:29:11 :
J'ai enlever les accents ...
17 juin 2005 15:32:12 :
Il me manquait encore 2 accents, je sais pas lire lol

 Sources du même auteur

Source avec Zip Source avec une capture [IRRLICHT][VC++ 2003] PROJET DARWIN : VOYAGEUR DE COMMERCE A...
Source avec Zip Source avec une capture [WIN32][VC++6] FILESENDER
Source avec Zip [WIN32] EASY DEBUG
Source avec Zip Source avec une capture TRONQUEUR DE NOM DE FICHIER (POUR LES BALADEURS) [VC++ 6]

 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

Commentaires et avis

Commentaire de BruNews le 16/06/2005 23:59:09 administrateur CS

Salut,
stp évite les noms avec accents, ça ne passe pas à la visualisation 'membre club'.
handle = GetDlgItem(hwnd,IDC_RES);
Ctempo=new char[7];
GetWindowText(handle,Ctempo,6);
tempo=atoi(Ctempo);
delete Ctempo;
Tu pourrais remplacer tout cela par un GetDlgItemInt, new comme toute alloc coute cher, bien sur pas grave ici mais y penser pour prog plus important.

Commentaire de Taranael le 17/06/2005 08:12:32

Bonne chance pour ton TPE mais fais gaffe en général les profs sont pas très malins et quand ils voient une page de code ils cherchent pas à comprendre ce qu'il y a ils préfèrent te dire que ça les interesse pas. Faut pas trop leur en demander ils sont prof :)

Commentaire de MuPuF le 17/06/2005 14:08:10

GetDlgItemInt !! Je connaissais pas ! je connaissais que le GetDlgItemText, faut dire que je commence juste le win32. Je vais enlever les accents ...

Commentaire de Joky le 17/06/2005 16:32:30

J'veux être prof !!!
C'est quoi ces préjugés comme quoi ils sont pas fute fute ???
Certes, y'a beaucoup de cons :) mais bon...

Commentaire de MuPuF le 17/06/2005 16:59:24

Ben si tu veux savoir, ils m'ont demandé en quoi c'étais. Je leurs ais dis que c'étais du cpp et leurs ais demmandé si ils voulaient voir la source, ils m'on dit un GROS NON ! ;-) lol

Commentaire de vecchio56 le 17/06/2005 17:12:26 administrateur CS

Pour suivre la remarque de BruNews, il fallait écrire delete[] Ctempo; et pas delete Ctempo; pour libérer la mémoire.
Les images créées avec LoadBitmap doivent être libérées avec DeleteObject
Et aussi fais un switch(LOWORD(wParam)) dans ton WM_COMMAND, ou au moins remplace les if par des else if, car les cas sont exclusifs

Commentaire de vecchio56 le 17/06/2005 17:18:04 administrateur CS

Le deuxième arg de PlaySound devrait être 0, car le fichier que tu utilises pour le son n'est pas dans les ressources du programme. Et si c'était le cas, tu devrais remplacer GetModuleHandle(0) par hInstance
Un autre truc que je trouve horrible: MB_YESNO+MB_ICONWARNING. L'addition n'est pas vraiment l'opérateur idéal ici. Quand les defines ne sont pas de puissances de deux ca peut donner de droles de résultat. Et si par erreur si écris deux fois MB_YESNO, ca va t'enlever MB_YESNO. L'usage est plutot d'écrire MB_YESNO | MB_ICONWARNING

Commentaire de vecchio56 le 17/06/2005 17:21:24 administrateur CS

Désolé pour les messages à répétition, mais la j'ai vu une vraie erreur:
SetWindowText(handle,itoa(tempo,"",10));
Cela n'a aucune raison de marcher, tu t'en sors bien si ca marche.

Commentaire de Urgo le 17/06/2005 18:05:46

vecchio, es-tu certain pour les if et else if ? J'avais déjà regardé l'asm généré par VC++ 7 et j'avais vu aucune différence... ?

Commentaire de vecchio56 le 17/06/2005 18:15:32 administrateur CS

Peut être que le compilo optimise lui même, mais pour la sémantique je mettrais des else. Le mieux ici etant bien sur un switch

Commentaire de MuPuF le 17/06/2005 19:23:16

Bon, donc pour bien supprimer un tableau il faut mettre [] apres le delete, ok Noté

Pour l'addition, merci encore, je connaissais que comment marche vb6, j'ai donc testé pareil, ça a marché, j'ai pas cherché plus loin.

Pour itoa, la syntaxe est char* itoa(int, char*,int). Donc normal que ça marche ...

Pour les else if c'est comme le switch, et la c'est une question de gout, je prefere ici le if (meme si c'est plus long car il doit recuperer la valeur a chaque  if). Mais je le garde en mémoire si je dois faire ça n jour dans une boucle.

Pour playsound j'ai galeré, (je hais les commandes sans exemples ! comment on peux comprendre avec 1/2 exemples surtout si c'est mal détaillé comme sur msdn)a la base je voulais l'inclure dans l'exe mais j'ai abandonné d'ou surrement l'oublis de mettre .

UN GROS MERCI, je veux pas rester un debutant toute ma vie lol, donc j'essais d'apprendre, vous êtes vraiment sympa d'aider les troufions ;-)


Commentaire de Joky le 17/06/2005 19:28:17

MSDN n'as rien d'un site peu détaillé...
Faut savoir cherché...

Commentaire de vecchio56 le 17/06/2005 19:31:59 administrateur CS

Pour le itoa je persiste: le deuxième paramètre doit pointer vers une chaine qui va contenir le texte. Si tu fournis "" ce n'est pas bon. Ce n'est pas parce que ca compile (seule la syntaxe est correcte) que le code marchera

Commentaire de MuPuF le 17/06/2005 19:38:03

Ben .... je comprends pas alors, il compile, et il court meme ! je l'ais testé quelques jours et jamais eu de prob de ce coté ...
c'est la seule fois que je l'ais utilisée comme ça, d'habitude je l'utilise comme tu le préconise.

Je parlais de MSDN l'aide sur cd de 1998 (donc un peu vielle et pas tres remplie mais tout de meme tres tres tres pratique) Je me suis servi du site pour les sockets que je maitrise tjs pas, vivement que j'y arrive et je me fais une classe pour ne plus galerer ;-)

Encore une fois merci a tous (je vais devenir saoulant mais je ne vous remercirez jamais assez)

Commentaire de MuPuF le 17/06/2005 19:42:13

ah j'ai oublié, l'avantage aussi de mettre le if(LOWORD(wParam) == IDOK) c'est que on peux avoir le meme code pour 2 boutons en faisant if(LOWORD(wParam) == IDM_SAVE || LOWORD(wParam) == IDC_SAVE)

Commentaire de BruNews le 17/06/2005 19:50:42 administrateur CS

On n'écrit pas sur un buffer de 1 octet comme dit vecchio !!!
"" fait 1 octet, juste le zero final, tu écrases les données qui sont derriere.

Commentaire de MuPuF le 17/06/2005 19:55:04

devant plutot, je m'étais dis ça, mais j'ai voulus tester, et ça a marché, mais promis je le referai plus.
J'avais mis ça car avec NULL ---> Plantage (et je comprend pourquoi lol,  essayer de ranger des oeufs dans un panier sans le panier ;-) bon ok l'exemple et nul a chier mais dans l'idée c'est ça)

Commentaire de ketchupy45 le 20/06/2005 10:04:47

Est ce que la fonction pour régler la temporisation marche?

Commentaire de MuPuF le 21/09/2005 18:32:37

oui, tout ce qui est dans le programme marche a la perfection, (si j'avais un bug devant les profs ça aurait pas été jojo, comme billou et windows 98 qui plante pendant sa demo lol).

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,390 sec (3)

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