begin process at 2012 05 28 14:30:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

boucles et boites de dialogues


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

boucles et boites de dialogues

jeudi 8 avril 2004 à 20:57:08 | boucles et boites de dialogues

grems

salut !

Mon appli est censée détecter quand des nouveaux *.hd arrivent dans un dossier . Lorsque ca arrive, une boite de dialogue s'ouvre et une musique se met en route jusqu'à ce qu'on ferme la dialogBox. mai le pb c'est que la musique ne se met pas en marche et que la détection ne marche plus (avant je fonctionnait simplement avec WIN32 )

voila mon "main" :

#include <fstream>
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
#include <mmsystem.h>
#pragma comment (lib,"winmm.lib") //librairie => playsound
#include "resource.h"


using namespace std;

LRESULT CALLBACK MainProc(HWND Dlg,UINT mssg,WPARAM wParam,LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
int i=0;
int new_nb=0,old_nb=0;
HANDLE hd;
WIN32_FIND_DATA w32hd;
HWND hDlg;

//détection des *.hd
while(1){
int nb=0; //sera le nombre de fichiers *.hd
char leshd[256] = "*.hd"; //tableau stockant les fichiers *.hd

//prendre le 1er fichier
hd = FindFirstFile ( leshd, &w32hd );

//si il y a un autre fichier recommencer l'operation
while (FindNextFile( hd, &w32hd)) nb++;

//si il y a des fichier avec l'extension .hd
if (hd!=INVALID_HANDLE_VALUE) new_nb = nb;

//si la nouvelle valeur de nb est différente de l'ancienne valeur (+ de .hd)
if (new_nb >> old_nb){
//mise à jour de nb
old_nb = new_nb;
hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
ShowWindow(hDlg,SW_SHOW);
MSG msg;
while(GetMessage(&msg,hDlg,0,0)==TRUE)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
//en cas de vidage mensuel du dossier
else old_nb = new_nb; //remise à jour de la valeur de nb

Sleep(3000);
i++;
}
return 0;
}

LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{
int Select;
switch(message)
{
case WM_COMMAND:
Select=LOWORD(wParam);
switch(Select)
{
//lecture d'un son *.wav
PlaySound("d:\\dog.wav",GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
//si appui sur OK, fermeture de la boite de dialogue
case IDOK:
EndDialog(Dlg,0);
PostQuitMessage(0);
return TRUE;
}
default:
return FALSE;
}
}


Si vou voyez quel pourrai être le problème , n'hésitez pas !!

Merci


Attention !! ne me mouillez po ! il parait ke je deviendrait méchant ...
jeudi 15 avril 2004 à 22:54:37 | Re : boucles et boites de dialogues

G0ss3Yn

Salut !
J'ai remodeler ton code tout d'abord, afin de le comprendre...
Et en effet il ne marche pas... :(

J'ai donc changé le code 'création de la boite de dialog' et remplacé par une MessageBox et ton PlaySound...
Ca marchait toujours pas... :(

Et puis tout d'un coup, j'ai vu que tu avais mis deux >> au niveau du test de supériorité... Et avec un seul ça marche, la MessageBox s'affiche et lorsque je click sur Ok, j'ai un Horrible Bip ! qui sort des haut parleur :D

Voilà le code modifié si tu veux tester...

if (new_nb > old_nb)
{
//mise à jour de nb
old_nb = new_nb;
// hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
// ShowWindow(hDlg,SW_SHOW);
MessageBox( NULL, "Nouveau !", "TEST", MB_OK ) ;
PlaySound("d:\\dog.wav",GetModuleHandle(NULL), SND_FILENAME|SND_ASYNC);
MSG msg;

}


Et aussi, ton PlaySound, il faut le mettre dans le
case IDOK :, sinon il est schinté par le switch( select )...
Voilà, j'espère que ton problème est résolu...
@+

G0ss3Yn... ( Bon coding a tous !)


Cette discussion est classée dans : int, include, wparam, nb, hd


Répondre à ce message

Sujets en rapport avec ce message

Client/Serveur avec thread sous linux [ par frater_sinister ] J'ai un prblm avec ce programme. Avant tout le but de ce code: le client envoit un fichier au serveur, ce dernier renvoit le nombre de lignes/mots/let Probleme de recursivite [ par Anysse ] Salut, je n arrive pas a comprendre le pourquoi de ce que le programme suivant renvoie : #include #include #include void recur (int, int);</FO Resource et Donnees [ par wxccxw ] Hello, voila premierement je donne mon code simple pour gerer une dialog Box resource : #include "resource.h" #include #include #include #include couleur pixel [ par kirby94460 ] bonjour a tous vioici mon probleme :je veux recuperer la couleur d'un pixel sur une apllication flash (sa classname est ShockwaveFlash) voici mon code Hook clavier et fenêtre premier plan [ par krokro6 ] Salut à tous, j'ai un petit problème avec ce code la : #include #include #include #include using namespace std;#define DLLEXPORT  __declsp Erreur de segmentation d'un simple client http sous linux !! [ par nassimatique ] #include #include #include #include #include #include #include #define TAILLE 4096 <b besoin d'un pro en c++ [ par skro93 ] Salut a tous je vous redemande votre aide  car c'est important, j'ai un programme qui me permet de lire et afficher  qu' un seul caractère mais ce je aide please !!!!!!!!!! [ par tmerigon ] bonjour je suis en premiere annee d iut info et j'ai un devoir a faire.j'ai commencé mon programme avec dev c++ mais j'ai l impression que programmer variable aleatoire entre 0 et 1 [ par khadija333 ] salut tout le monde,j'ai essayé de generer une variable reelle aléatoire entre 0 et 1 en langage C mais elle me donne toujours o.ooooo je ne sais pas Deboguer un code [ par ptit programeur ] bonjours je voudrais savoir pourquoi ce code est faux#include #include using namespace std; int main(int argc, char *argv[]){  long triple (long


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 1,872 sec (3)

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