Killur
Mitglied
Benutzerprofil
Anmeldungsdatum: 13.12.2010
Beiträge: 148
|
Killur Mitglied
16:36:21 25.03.2012 Titel: |
Problem beim Verarbeiten von Werten einer Textbox |
Zitieren |
Hallo,
ich habe eine Textbox erstellt in die der User etwas (bzw. eine Zahl) eingibt. Jetzt will ich die Werte weiterverarbeiten. Das ganze sieht bis jetzt so aus:
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
static HDC hdc;
static HWND hEdit[10];
int arr[4];
char buffer[256];
int Breite, Höhe, Vert, Hor, Tief, Kugeln;
char kug[256];
switch (message)
{
case WM_COMMAND:
switch(wParam)
{
case 1:
SendMessage(hEdit[1], WM_GETTEXT, 256, (LPARAM)buffer);
Breite = atoi( buffer );
SendMessage(hEdit[2], WM_GETTEXT, 256, (LPARAM)buffer);
Höhe = atoi( buffer );
SendMessage(hEdit[3], WM_GETTEXT, 256, (LPARAM)buffer);
Vert = atoi( buffer );
SendMessage(hEdit[4], WM_GETTEXT, 256, (LPARAM)buffer);
Hor = atoi( buffer );
SendMessage(hEdit[5], WM_GETTEXT, 256, (LPARAM)buffer);
Tief = atoi( buffer );
Kugeln = ((Höhe+1)*2)*(Breite+1);
itoa(Kugeln, kug, 256);
MessageBoxA(hWnd, kug, "Kugeln", MB_OK);
break;
}
break;
case WM_CREATE:
hEdit[1] = CreateWindowEx(WS_EX_CLIENTEDGE, _T("edit"), NULL,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
170, 20, 100, 22,
hWnd, (HMENU) 2005,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL);
hEdit[2] = CreateWindowEx(WS_EX_CLIENTEDGE, _T("edit"), NULL,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
170, 45, 100, 22,
hWnd, (HMENU) 2004,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL);
hEdit[3] = CreateWindowEx(WS_EX_CLIENTEDGE, _T("edit"), NULL,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
170, 70, 100, 22,
hWnd, (HMENU) 2003,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL);
hEdit[4] = CreateWindowEx(WS_EX_CLIENTEDGE, _T("edit"), NULL,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
170, 95, 100, 22,
hWnd, (HMENU) 2002,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL);
hEdit[5] = CreateWindowEx(WS_EX_CLIENTEDGE, _T("edit"), NULL,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
170, 120, 100, 22,
hWnd, (HMENU) 2001,
(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL);
hEdit[6] = CreateWindowA("Button","Berechnen",
BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE ,5,150,100,25,hWnd,(HMENU)1,(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE),0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
TextOutA(hdc,5,22,"Breite (Felder):", 16);
TextOutA(hdc,5,48,"Höhe (Felder):", 14);
TextOutA(hdc,5,72,"Vertikal-Rohre (cm):", 20);
TextOutA(hdc,5,96,"Horizontal-Rohre (cm):", 22);
TextOutA(hdc,5,120,"Tiefe-Rohre (cm):", 17);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
} | |
Gebe ich jetzt in das Feld Breite 1 ein und in Höhe auch, dann kommt 8 raus, ist ja auch richtig. Gebe ich aber in beide Felder 2 ein, dann sagt die MessageBox mir "i". Das ist bei allen anderen Zahlen auch so (nur mit anderen Buchstaben) auser eben bei 1,1.
Wie kann man das lösen?
MFG! |
Zuletzt bearbeitet von Killur am 16:36:43 25.03.2012, insgesamt 1-mal bearbeitet |
|