Premetto che sono nuovo nel campo delle API di microsoft, quindi ho provato a fare questo semplice programma che, in teoria, doveva essere un contatore e, se arrivava a 127, prima mostrava 000 e se si schiacciava di nuovo il programma si chiudeva.. però, dopo che schiaccio il pulsante la prima volta ( quando c'è ancora lo 0 iniziale), scompaiono i numeri e il bottone rimane vuoto e non fa piu niente.. posto il codice..
#include"stdafx.h"
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include<tchar.h>
#include<iostream>
#include<string>
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DialogBoxParam(0,_T("MioDialogo"), 0,unaDlgProc,0);
return 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)
{
int buff[10];
int pTesto;
pTesto = 0;
SendMessage(hwndDlg, WM_GETTEXT, 10, buff[0]);
int pTesto = GetDlgItemInt(hwndDlg, 101, 0, FALSE);
if(buff[0]>=0&&pTesto<100)
{
pTesto++;
int pTesto = SetDlgItemInt(hwndDlg, 101, 0, FALSE);
SendMessage(hwndDlg, WM_SETTEXT, 0, (LPARAM)pTesto);
}
else if (pTesto==100)
{
pTesto=000;
int pTesto = SetDlgItemInt(hwndDlg, 101, 0, FALSE);
SendMessage(hwndDlg, WM_SETTEXT, 0, (LPARAM)pTesto);
}
else if(pTesto>100)
{
EndDialog(hwndDlg, 0);
}
return TRUE;
}
}
return FALSE; }
e qui il codice del file .rc correlato..
#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 "0", 101, "STATIC", SS_CENTER|WS_BORDER|SS_NOTIFY, 60, 40, 40, 10 END
grazie mille a tutti!!