phate89 (Normal User)
Newbie
Messaggi: 1
Iscritto: 07/08/2009
|
salve a tutti... sto provando per la prima volta un programma con interfaccia grafica in c++...ho usato il c++ per poco solo con la console però un'idea del funzionamento me lo sono fatto...per creare l'interfaccia grafica sto seguendo [URL="http://www.aleax.it/TutWin32/p7.htm"]qusta guida[/URL] che mi è sembrata molto completa..
seguendo il loro esempio ottengo un programma cosi:
Codice sorgente - presumibilmente C++ |
#define STRICT #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <string> 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; } int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { DialogBoxParam(0,L"MioDialogo",0,unaDlgProc,0); return 0; }
|
con questo che è il file dell'interfaccia grafca (MIODIALOGO.rc)
Codice sorgente - presumibilmente C/C++ |
#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
|
però quando lo eseguo e clicco sul label con la scritta "Ciao!" ricevo questo errore:
Run-Time Check Failure #2 - Stack around the variable 'buff' was corrupted.
e la variabile ptesto contiene una serie di caratteri cinesi...
per fare il programma uso visual studio 2008 in un progetto win32..dove sbaglio? come posso risolvere? |