View Full Version : [Visual c++]Puntatore This e CClientDC
Salve a tutti
devo risolvere un piccolo problemino
(il probl principale è che nn sono pratico di Visual C++)...
Ho dichiarato un thread tramite questa dichiaraz (nell'header)
static DWORD WINAPI ThreadProc(LPVOID pObjPointer)
nel corpo della funzione, ho bisogno di dichiarare un oggetto della classe CClientDC, e di solito facevo così
CClientDC dc(this)
ora mi dice (ovv penso...) che il puntatore this nn è disponibile per funzioni membro static....
come devp dichiarare l'oggetto? devo ottenere in pratica l'area client della finestra di dialogo (per disegnarci)...
grazie!!
Non avevamo detto di mettere tutto all'interno di un metodo che faceva parte della classe e che era richiamato tramite un messaggio ?!?!?
In quel caso funziona tutto come prima...
Non avevamo detto di mettere tutto all'interno di un metodo che faceva parte della classe e che era richiamato tramite un messaggio ?!?!?
In quel caso funziona tutto come prima...
in pratica il thread richiamerà una funzione membro della classe?
giusto, scusami ma sto ancora dormendo....
ancora grazie.
Eravamo rimasti a questa struttura se non sbaglio:
for(int i=0; i<N; ++i)
{
dlg->drawComplete = false;
dlg->SendMessage(WM_DODRAWSTUFF);
while(!dlg->drawComplete)
Sleep(1);
if(dlg->stopThread)
break;
}
Eravamo rimasti a questa struttura se non sbaglio:
for(int i=0; i<N; ++i)
{
dlg->drawComplete = false;
dlg->SendMessage(WM_DODRAWSTUFF);
while(!dlg->drawComplete)
Sleep(1);
if(dlg->stopThread)
break;
}
infatti...
ma all'interno di questa struttura devo disegnare, quindi devo richiamare una funzione membro della classe (da me definita) che disegna, come faccio di solito....
e nella funzione membro uso il CClientDC dc(this)....
:fagiano:
dlg->SendMessage(WM_DODRAWSTUFF);
Ci penserà questo emssaggio a richimare la funzione che disegna !!! ;) Dovrai fare tutto lì dentro...
dlg->SendMessage(WM_DODRAWSTUFF);
Ci penserà questo emssaggio a richimare la funzione che disegna !!! ;) Dovrai fare tutto lì dentro...
ahhhh, ora ho capito.... :oink:
in pratica se richiamo direttamente la funzione così
while (!dlg->stopThread)
dlg->Disegna();
va male?
Sì...perchè c'è il solito problema che ci dava l'altra volta...in pratica MFC non vuole che la parte "grafica" dell'applicazione venga gestita da un thread diverso...
Sì...perchè c'è il solito problema che ci dava l'altra volta...in pratica MFC non vuole che la parte "grafica" dell'applicazione venga gestita da un thread diverso...
ok...
allora la chiamata a un'altra funzione la faccio tramite messaggio (come facevamo per la UpdateData con la funz OnUpdateData)...
ciao e buona giornata
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.