coucou à tous .
mon semble assez courrant pour ce que j'ai vu sur le forum.
voici la situation:
je fait une fonction qui fait appel à un thread
ce thread fait évoluer une bar progress
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 ... info.m_progress=&m_progress; info.m_hWnd=&this->m_hWnd; for(int i=0; i<nombrefonction+1; i++) { if(i<nombrefonction) info.m_voyant=&voyant[i]; com.m_watchThread = CreateThread((LPSECURITY_ATTRIBUTES )lpThreadAttributes, (DWORD)dwStackSize, (LPTHREAD_START_ROUTINE)CCom::CommWatchProc, (LPVOID)&info, (DWORD)dwCreationFlags, (LPDWORD)&com.m_threadID); if(com.m_watchEvent==NULL) { testencour=false; CloseHandle(com.m_hCom) ; TRACE("thread inexistant\n"); } else { if(!EscapeCommFunction( *info.m_hCom, SETDTR )) TRACE("impossible de prologer la communication\n%d\n", GetLastError()); } if(i<nombrefonction) { creerTrame(&nomcommande[i]); calculerPoidBits(trame[1]); com.WriteComm(trame,trame[1]); testencour=true; } UpdateData(FALSE); PumpMessages(); } ...
"PumpMessages()" est une fonction que j'ai récuperé sur la FAQ qui laisse le temp à l'appli de taitrer les messages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ... if (nLength = ReadComm(tempabIn, 100, INFO)) { TRACE("\n%d %d %d %d %d %d\n",tempabIn[0],tempabIn[1],tempabIn[2],tempabIn[3],tempabIn[4],tempabIn[5]); INFO->m_voyant->SetBkColor(RGB(0,255,0)); INFO->m_progress->SetPos(INFO->m_progress->GetPos()+1); UpdateWindow(*INFO->m_hWnd); //ajout } ...
mon problème est que en rajoutant cette fonction mon raffraichissement de ma fenêtre ne ce fait pas correctement
quelqu'un à une solution ?SVP
Partager