MrModd
30-08-2010, 12:40
Ciao, non riesco ad intercettare il segnale WM_HELP. Ho spulciato tutto Google e l'MSDN Library, ma niente.
Ecco la situazione: ho un MessageBox che presenta il tasto "?" (MB_HELP). Devo visualizzare un altro MessageBox nel momento in cui il tasto, oppure F1 sono premuti. Come si fa?
Questo è il codice che ho scritto leggendo l'MSDN:
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
if(msg==WM_HELP)
{
MessageBox(NULL, L"Ciao", L"Titolo", MB_ICONERROR | MB_OK);
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Però questo non è collegato in nessun modo al resto del programma, cioè è solo una funzione messa nel codice.
Il MessageBox che genera il tasto di aiuto è invece così:
MessageBox(NULL, string_wstring(message).c_str(), L"Programma", MB_RETRYCANCEL | MB_HELP | MB_DEFBUTTON2);
ed è all'interno della funzione int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) che dovrebbe essere il punto d'ingresso del programma.
Un grazie anticipato a chi mi aiuterà :)
Ecco la situazione: ho un MessageBox che presenta il tasto "?" (MB_HELP). Devo visualizzare un altro MessageBox nel momento in cui il tasto, oppure F1 sono premuti. Come si fa?
Questo è il codice che ho scritto leggendo l'MSDN:
LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
if(msg==WM_HELP)
{
MessageBox(NULL, L"Ciao", L"Titolo", MB_ICONERROR | MB_OK);
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Però questo non è collegato in nessun modo al resto del programma, cioè è solo una funzione messa nel codice.
Il MessageBox che genera il tasto di aiuto è invece così:
MessageBox(NULL, string_wstring(message).c_str(), L"Programma", MB_RETRYCANCEL | MB_HELP | MB_DEFBUTTON2);
ed è all'interno della funzione int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) che dovrebbe essere il punto d'ingresso del programma.
Un grazie anticipato a chi mi aiuterà :)