Newsgroup: it.comp.programmare.win32
Titolo: messaggi

conosco abbastanza bene il C++ e sto ' cercando di imparare a
programmare win32 con MFC;
non mi e' molto chiara una cosa sui messaggi.
Leggo testualmente dal Prosise:
(snip) l'istruzione 
pThread->Run();
richiama la funzione Run dell'oggetto applicazione, che esegue il
ciclo di messaggi e comincia a inviare i messaggi nella finestra
dell'applicazione (snip)  fino a che non viene recuperato WM_QUIT
(snip)
cosa e' il ciclo dei messaggi?
Chi manda e chi recupera i messaggi?
grazie
Manfry

Il ciclo dei messaggi o il message loop è quello che nelle standard
API corrisponde a:
/* Run the message loop. It will run until GetMessage( ) returns 0 */
    while(GetMessage(&messages, NULL, 0, 0))
    {
           /* Translate virtual-key messages into character messages
*/
           TranslateMessage(&messages);
           /* Send message to WindowProcedure */
           DispatchMessage(&messages);
    }
I messaggi nelle API vengono gestiti con una callback definita dal
programmatore. Eccone un esempio:
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM
wParam, LPARAM lParam)
{
switch (message)                  /* handle the messages */
 
{case WM_DESTROY:
           PostQuitMessage(0);        /* send a WM_QUIT to the message
queue */
           break;
           default:                   /* for messages that we don't
deal with */
           return DefWindowProc(hwnd, message, wParam, lParam);
    }
    return 0;
}
Nelle MFC questo è svolto da un membro delle CWinApp. Questa è la
corrispondente alla callback.
Se programmi in VC++6 non dovresti trovare problemi e non dovresti
neanche cercarteli. Quando tu hai un controllo ad esempio, tu puoi
utilizzare la finestra aggiungi evento. Evento, in MFC è sinonimo di
notification message.
Ti consiglio comunque prima di tutto di imparare la struttura di un
programma fatto solo con le API e poi di passare alle MFC.

On Fri, 29 Dec 2000 19:23:47 GMT, 
silvano...@tin.it
 (Enrico
Talotti) wrote:
grazie per la risposta, cerchero' di assimilarla.
Mi tocchera' leggermi prima qualche libro di programmazione API.
Speravo che sul Prosise, osannato da molti, introducesse in modo piu'
approfondito il funzionamento di windows.
Mi conviene comprare il Kruglinski oppure il Petzold?
Oppure c'e' qualche altro testo che spieghi le basi della
programmazione di windows?
Tieni presente che sarei orientato ad utilizzare MFC quindi un
reference sulle API sebbene utile non mi e' indispensabile.
ciao
Manfry

Guarda, io ti consiglio di andare su
msdn.micorosft.com/library
Li troverai tutto il materiale sulla programmazione Win32 (e Win64).
Comunque, se hai Visual C++ 6 non dovresti avere molti problemi. Come
testi sulle MFC ti consiglio di scaricarti l'ottimo testo, veramente
completo, che trovi nella sezione C++\Tutorial del sito
www.devpride.com
Purtroppo il testo è in inglese. Se invece vuoi un libro guarda tra
quelli della Microsoft della MONDADORI Informatica. Io a dire il vero,
ho usato solo i testi free su internet fino ad ora e con l'esperienza
si comprende bene anche da quelli.
Spero di averti dato una mano, buon lavoro.

Chi manda e chi recupera i messaggi?
Windows in prevalenza, ma e' anche possibile che un'applicazione
utente mandi un messaggio a un'altra applicazione utente.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."