begin process at 2012 05 29 14:55:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

MFC

 > 

Passage du handle d'une boite de dialogue dans un thread


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

Passage du handle d'une boite de dialogue dans un thread

lundi 19 février 2007 à 22:42:53 | Passage du handle d'une boite de dialogue dans un thread

by_rabbit_08

Bonsoir!
J'ai une question, ça fait depuis le début de la soirée que je galère avec ça, et là j'en peux plus...
Donc ma question est:
j'ai une progressbar déclarée dans une boite de dialogue (hDlg3) par fichier ressource. Ensuite, j'aimerais la faire avancer avec un Thread... Jusque là, c'est clair je crois... Donc voilà ce que je fais:

BOOL APIENTRY Dialog3Proc(HWND hDlg3,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
//dans la boite de dialogue
  ShowWindow(GetDlgItem(hDlg3,ID_PROGRESS_1),SW_SHOW);
  SendDlgItemMessage(hDlg3, ID_PROGRESS_1, PBM_SETRANGE, 0, MAKELONG(0,10));
  SendDlgItemMessage(hDlg3, ID_PROGRESS_1, PBM_SETSTEP, 1, 0);
  hThread=NULL;
  hThread=CreateThread('\0','\0',ThreadProc1,&hDlg3,'\0',&ThreadId);
}


//et le procédure du thread:
DWORD WINAPI ThreadProc1(LPVOID hDlg3)
{
  SendDlgItemMessage(*(HWND*)hDlg3, ID_PROGRESS_1, PBM_STEPIT, 0, 0);
  SendDlgItemMessage(*(HWND*)hDlg3, ID_PROGRESS_1, PBM_STEPIT, 0, 0);
 //vous allez me dire pourquoi le faire 2 fois au lieu de une, ou bien pourquoi ne pas le faire plus de fois, etc... ça change rien, rien ne s'affiche...
}

Ces deux parties de codes ne sont pas dans le même fichier, mais bon ça ne change pas grand chose, parce que de toute façon, je n'arrive pas à déclarer hDlg3 plus loin que la procédure elle-même...
Donc enfait, lorsque j'exécute et tout (parce qu'il y a bcp d'autres choses aussi...), eh bien la progressbar s'affiche, mais ne se remplis pas...
Pitié de l'aide, ça serait trop cool, j'en ai vraiment plein l....
merci d'avance
mardi 20 février 2007 à 00:24:17 | Re : Passage du handle d'une boite de dialogue dans un thread

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

Les params sont 32 bits, inutile de les mettre en char pour que le compilo les REtransforme.
HWND est une valeur 32 bits, on la passe direct en param.

BOOL APIENTRY Dialog3Proc(HWND hDlg3,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
  ShowWindow(GetDlgItem(hDlg3,ID_PROGRESS_1),SW_SHOW);
  SendDlgItemMessage(hDlg3, ID_PROGRESS_1, PBM_SETRANGE, 0, MAKELONG(0,10));
  SendDlgItemMessage(hDlg3, ID_PROGRESS_1, PBM_SETSTEP, 1, 0);
  // hThread=NULL; INUTILE PUISQUE AFFECTATION LIGNE SUIVANTE
  hThread = CreateThread(0, 0, ThreadProc1, (LPVOID) hDlg3, 0, &ThreadId);
}


DWORD WINAPI ThreadProc1(LPVOID hDlg3)
{
  SendDlgItemMessage((HWND)hDlg3, ID_PROGRESS_1, PBM_STEPIT, 0, 0);
  SendDlgItemMessage((HWND)hDlg3, ID_PROGRESS_1, PBM_STEPIT, 0, 0);
  return 0,
}


ciao...
BruNews, MVP VC++

mardi 20 février 2007 à 17:12:07 | Re : Passage du handle d'une boite de dialogue dans un thread

by_rabbit_08

Yes Merci!! tu m sauves la vie! merci bcp!


Cette discussion est classée dans : progress, boite, id, dialogue, hdlg3


Répondre à ce message

Sujets en rapport avec ce message

Boite de dialogue non modale [ par loC ] Salut,Comment attribuer et récupérer un code de retour à une boite de dialogue non modale ?i.e: signaler a la fenetre appelante de la validation/annul recupérer les controles d'une Boite de Dialogue [ par loC ] salut,ju'aimerai pouvoir balayer tous les controles d'une boite de dialogue.ie : obtenir une liste de CWnd * contenant tous les controles. Comment afficher une boite de dialogue que je vient de créer ???? [ par coyito ] Comment procede t on avec les MFC ?MerciA+Eric Application type boite de dialogue [ par Sophia ] Bonjour,j'utilise borland c++ 5.02 et je voudrais faire une application type boite de dialogue.Avec les fonctions DialogBox, CreateDialog,CreateDialog Comment insérer une vue dans une boite de dialogue??? [ par Gtab ] Bonjour,J'aimerais, sous Visual C++ 6.0, créer des boites de dialogue dockables (avec DialogBar) et y insérer une vue pour y dessiner des informations Boite de dialogue "parcourir" avec Visual C++ [ par karine ] je cherche à faire une boite de dialogue permettant simplement de selectionner un repertoire situé sur le disque. Merci d'avance Comment inserer une barre d'outils dans une boite de dialogue [ par Lady ] merci Zoomer une boite de dialogue [ par Jean-luc ] bonjour à tous,je commence à peine en CPP et je voudrais savoir comment puis je rendre le fenetre de mon application en pleine ecran ?j'utilise une fe boite de dialogue en C++ [ par rerebozo ] Je cherche un site ou je peux des boites de dialogues liste à checker MFC et boite de dialogue Dossier [ par jpeg ] Je programme actuellement une petite app windows avec MFC et j'aimerai pouvoir sélectionner un dossier. Le problème, c'est qu'en MFC, il y a bien une


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 : 5,990 sec (3)

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