Dag allemaal.
Ik probeer samen met iemand een programma te schrijven in C++. Hier in moet de gebruiker een waarde in een inputbox invoeren. Dit moet ik dan in de code kunnen opvragen, ermee rekenen en vervolgens het resultaat outputten.
We gebruiken Dev-C++.
(dit gaat niet over een console- maar een win32/winAPI applicatie)
We hebben twee vragen:
1.
Ik heb een functie gevonden die een vakje maakt en alles wat in dit vakje getypt opslaat in de variabele 'text'. Het probleem is dat hij dit als een tekenreeks opslaat. Daarmee kun je niet mee rekenen.
Is er een manier om dit te converteren, of kan ik beter een ander commando gebruiken dat zelf al een getal opslaat?
2.
Ik heb geprobeerd om gewoon de 'text' variabele op het scherm te tekenen. Maar als ik dit doe, verdwijnt het inputvakje en de 'OK' knop. Als je er met de cursor overheen gaat, komt het deels weer terug
. Ik denk dat er iets fout is met de IDs omdat het allemaal zogenaamde 'windows' zijn.
Alvast erg bedankt :thumb:
Dit is onze code:
Ik probeer samen met iemand een programma te schrijven in C++. Hier in moet de gebruiker een waarde in een inputbox invoeren. Dit moet ik dan in de code kunnen opvragen, ermee rekenen en vervolgens het resultaat outputten.
We gebruiken Dev-C++.
(dit gaat niet over een console- maar een win32/winAPI applicatie)
We hebben twee vragen:
1.
Ik heb een functie gevonden die een vakje maakt en alles wat in dit vakje getypt opslaat in de variabele 'text'. Het probleem is dat hij dit als een tekenreeks opslaat. Daarmee kun je niet mee rekenen.
Is er een manier om dit te converteren, of kan ik beter een ander commando gebruiken dat zelf al een getal opslaat?
2.
Ik heb geprobeerd om gewoon de 'text' variabele op het scherm te tekenen. Maar als ik dit doe, verdwijnt het inputvakje en de 'OK' knop. Als je er met de cursor overheen gaat, komt het deels weer terug

Alvast erg bedankt :thumb:
Dit is onze code:
Code:
[FONT="Courier New"][SIZE="2"]
#include <windows.h>
#define ID_EDIT 1
#define ID_BUTTON 2
#define ID_OUTPUTTEXT 3 [COLOR="Green"] /*Ik dacht dat dit erbij moest voor de window die de output text tekent.*/[/COLOR]
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndEdit;
static HWND hwndButton;
static HWND hwndOutputtext; [COLOR="Green"]/*Ik dacht dat dit erbij moest voor de window die de output text tekent.*/[/COLOR]
static int len;
static TCHAR text[30];
switch(msg)
{
case WM_CREATE:
hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20, hwnd, (HMENU) ID_EDIT,NULL, NULL); [COLOR="Green"]//Vakje[/COLOR]
hwndButton = CreateWindow(
TEXT("button"), TEXT("OK"), WS_VISIBLE | WS_CHILD, 50, 100, 80, 25, hwnd, (HMENU) ID_BUTTON, NULL, NULL); [COLOR="Green"] //Knop[/COLOR]
break;
case WM_COMMAND:
if (HIWORD(wParam) == BN_CLICKED) { [COLOR="Green"]//Als knop is ingedrukt[/COLOR]
InvalidateRect(hwnd,NULL,TRUE);
len = GetWindowTextLength(hwndEdit) + 1;
GetWindowText(hwndEdit, text, len);
hwndOutputtext = CreateWindow(TEXT("STATIC"), text, WS_CHILD | WS_VISIBLE | SS_LEFT, 20, 20, 300, 230, hwnd, (HMENU) ID_OUTPUTTEXT, NULL, NULL); [COLOR="Green"]//Output text[/COLOR]
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
MSG msg ;
WNDCLASS wc = {0};
wc.lpszClassName = TEXT( "Edit Control" );
wc.hInstance = hInstance ;
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wc.lpfnWndProc = WndProc ;
wc.hCursor = LoadCursor(0,IDC_ARROW);
RegisterClass(&wc);
CreateWindow( wc.lpszClassName, TEXT("Edit control"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 220, 220, 280, 200, 0, 0, hInstance, 0);
while( GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}[/SIZE][/FONT]