Originariamente inviato da apatico
seguendo il consiglio di netarrow mi da questi errori:
unaDlgProc' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
aggiungi all'inizio la dichiarazione della funzione:
codice:
...
BOOL CALLBACK unaDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
...
aggiungendo quello a me funziona, cmq a titolo d'esempio mostro tutto il codice con il quale a me funziona al 100%:
Sorgente.cpp:
codice:
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
BOOL CALLBACK unaDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
return DialogBoxParam(0,"MioDialogo", 0,unaDlgProc,0);
}
BOOL CALLBACK unaDlgProc(HWND hwndDlg,
UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if(uMsg==WM_CLOSE) {
EndDialog(hwndDlg, 0);
return TRUE;
} else if(uMsg==WM_COMMAND) {
WORD wNotifica = HIWORD(wParam);
WORD wId = LOWORD(wParam);
if(wNotifica == STN_CLICKED &&
wId == 101) {
HWND hStat = (HWND)lParam;
char buff[6];
const char* pTesto;
SendMessage(hStat, WM_GETTEXT,
6, (LPARAM)buff);
if(buff[0]=='C')
pTesto = "Salve";
else
pTesto = "Ciao!";
SendMessage(hStat, WM_SETTEXT,
0, (LPARAM)pTesto);
return TRUE;
}
}
return FALSE;
}
resource.rc
codice:
#include <windows.h>
MioDialogo DIALOG DISCARDABLE 0, 0, 186, 92
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Un Dialogo vuoto"
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "Ciao!", 101, "STATIC",
SS_CENTER|WS_BORDER|SS_NOTIFY, 60, 40, 40, 10
END
chiedo scusa, SS_NOTIFY l'ho messo al posto sbagliato prima, e senza metterlo proprio il messaggio non viene gestito.