C++ Buttons??

Status
Niet open voor verdere reacties.
Ik vind het een beetje lastig om zo uit te leggen, voeg me maar toe op msn: paul @ dumpendiezooi . nl
(zonder spaties of course)
Ik ben ook zelf pas heel even bezig met de win32 api, ik was ook lang met die buttons bezig maar nu is het gelukt.

Andere gebruikers / bezoekers hebben hier misschien ook problemen mee. Het forum is bedoeld voor dit soort zaken, dus ik zie niet in waarom je hier je antwoord / tips / adviezen niet kan plaatsen?
 
Code:
HWND Button1 = CreateWindowEx(NULL,"BUTTON","De text op de knop",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,200,25,hwnd,NULL,hThisInstance,NULL);

de hwnd (na de 4 getallen) is de pointer naar het scherm waar je het in wilt, hThisInstance snap je wel
 
Laatst bewerkt:
juist

Code:
HWND Button1 = CreateWindowEx(NULL,"BUTTON","De text op de knop",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,200,25,hwnd,NULL,hThisInstance,NULL);

de hwnd (na de 4 getallen) is de pointer naar het scherm waar je het in wilt, hThisInstance snap je wel


ik weet het neit hoor maar di code klopt voor gene meter
ik krijg niks anders dan errors :S

kan ana mij liggen maar staat de code er wle goed??

hoop dat je kan helpen
 
Runned hier prima....

Code:
#include <windows.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "Knoppen";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd; /* This is the handle for our window */
MSG messages; /* Here messages to the application are saved */
WNDCLASSEX wincl; /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after the window class */
wincl.cbWndExtra = 0; /* structure or the window instance */
/* Use Windows's default color as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
return 0;

/* The class is registered, let's create the program*/
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Knoppen", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
300, /* The programs width */
300, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);

/* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil);
[b]HWND Button1 = CreateWindowEx(NULL,"BUTTON","De text op de knop",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,200,25,hwnd,NULL,hThisInstance,NULL);[/b]
/* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}

/* The program return-value is 0 - The value that PostQuitMessage() gave */
return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage() */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}
 
thx man

heye thx man het werkt :D:D

kan ik de kleru van eht knopje veranderen en text kleur er in miss ook??

kan ik ook een schermpje maken als ik bijv op dat knopje druk dat het dan in dat scherpje of ander knopje komt te staan??
miss of ene vake in het schermpje waar het dna in komt te staan

dnakje :D:P
 
Laatst bewerkt:
De kleur etc veranderen kan niet zomaar, je kan wel eigen buttons maken (heb ik gehoord) daar heb ik verder ook niet echt veel ervaring mee.

Over 2 schermen dat het 1'ne knopje van scherm wisseld ga ik nu even een voorbeeld code maken, deze zal ik hier zo posten
 
Nieuwe gedeeltes zijn in bold, heb het gelijk ook even overzichtelijker neergezet, voor verdere vragen etc kan je me altijd vragen

Code:
#include <windows.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "Knoppen";
[B]char szClassName2[ ] = "Knoppen2";[/B]
HWND Button1;
[B]HWND Button2;[/B]

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil){
	HWND hwnd; /* This is the handle for our window */
	[B]HWND hwnd2;[/B]
	MSG messages; /* Here messages to the application are saved */
	WNDCLASSEX wincl; /* Data structure for the windowclass */
	[B]WNDCLASSEX wincl2;[/B]

	/* The Window structure */
	wincl.hInstance = hThisInstance;
	wincl.lpszClassName = szClassName;
	wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
	wincl.style = CS_DBLCLKS; /* Catch double-clicks */
	wincl.cbSize = sizeof (WNDCLASSEX);
	/* Use default icon and mouse-pointer */
	wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
	wincl.lpszMenuName = NULL; /* No menu */
	wincl.cbClsExtra = 0; /* No extra bytes after the window class */
	wincl.cbWndExtra = 0; /* structure or the window instance */
	/* Use Windows's default color as the background of the window */
	wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;


	[B]/* The Window structure */
	wincl2.hInstance = hThisInstance;
	wincl2.lpszClassName = szClassName2;
	wincl2.lpfnWndProc = WindowProcedure; /* This function is called by windows */
	wincl2.style = CS_DBLCLKS; /* Catch double-clicks */
	wincl2.cbSize = sizeof (WNDCLASSEX);
	/* Use default icon and mouse-pointer */
	wincl2.hIcon = LoadIcon (NULL, IDI_APPLICATION);
	wincl2.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	wincl2.hCursor = LoadCursor (NULL, IDC_ARROW);
	wincl2.lpszMenuName = NULL; /* No menu */
	wincl2.cbClsExtra = 0; /* No extra bytes after the window class */
	wincl2.cbWndExtra = 0; /* structure or the window instance */
	/* Use Windows's default color as the background of the window */
	wincl2.hbrBackground = (HBRUSH) COLOR_BACKGROUND;[/B]

	/* Register the window class, and if it fails quit the program */
	if (!RegisterClassEx (&wincl)){
		return 0;
	}
	[B]/* Register the window class, and if it fails quit the program */
	if (!RegisterClassEx (&wincl2)){
		return 0;
	}[/B]
	/* The class is registered, let's create the program*/
	hwnd = CreateWindowEx (
		0, /* Extended possibilites for variation */
		szClassName, /* Classname */
		"Knoppen", /* Title Text */
		WS_OVERLAPPEDWINDOW, /* default window */
		10, /* Windows decides the position */
		10, /* where the window ends up on the screen */
		300, /* The programs width */
		300, /* and height in pixels */
		HWND_DESKTOP, /* The window is a child-window to desktop */
		NULL, /* No menu */
		hThisInstance, /* Program Instance handler */
		NULL /* No Window Creation data */
	);
	[B]/* The class is registered, let's create the program*/
	hwnd2 = CreateWindowEx (
		0, /* Extended possibilites for variation */
		szClassName, /* Classname */
		"Knoppen - Scherm 2", /* Title Text */
		WS_OVERLAPPEDWINDOW, /* default window */
		400, /* Windows decides the position */
		10, /* where the window ends up on the screen */
		300, /* The programs width */
		300, /* and height in pixels */
		HWND_DESKTOP, /* The window is a child-window to desktop */
		NULL, /* No menu */
		hThisInstance, /* Program Instance handler */
		NULL /* No Window Creation data */
	);[/B]
	/* Make the window visible on the screen */
	ShowWindow (hwnd, nFunsterStil);
	[B]ShowWindow (hwnd2,nFunsterStil);[/B]
	Button1 = CreateWindowEx(NULL,"BUTTON","Ga Naar Scherm 2",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,200,25,hwnd,NULL,hThisInstance,NULL);
	[B]Button2 = CreateWindowEx(NULL,"BUTTON","Ga Naar Scherm 1",WS_CHILD | BS_PUSHBUTTON,10,10,200,25,hwnd2,NULL,hThisInstance,NULL);[/B]
	/* Run the message loop. It will run until GetMessage() returns 0 */
	while (GetMessage (&messages, NULL, 0, 0)){
		/* Translate virtual-key messages into character messages */
		TranslateMessage(&messages);
		/* Send message to WindowProcedure */
		DispatchMessage(&messages);
	}

	/* The program return-value is 0 - The value that PostQuitMessage() gave */
	return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
	switch (message){ /* handle the messages */
	[B]	case WM_COMMAND:
			if(HIWORD(wParam) == BN_CLICKED){
				if((HWND)lParam == Button1){
					ShowWindow(Button1,SW_HIDE);
					ShowWindow(Button2,SW_SHOW);
				}else if((HWND)lParam == Button2){
						ShowWindow(Button1,SW_SHOW);
						ShowWindow(Button2,SW_HIDE);
				}
			}
			break;[/B]
		case WM_DESTROY:
			PostQuitMessage (0); /* send a WM_QUIT to the message queue */
			break;
		default: /* for messages that we don't deal with */
		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}
 
oke

en wat bedoel je presies dat je knop je evranderd??

ik zal ff duiderlijekr zijn ik heb bijv knoppen waar een cijver op staat en als ik die strax in klik dat dat cijver dan bijv boven de knoppen blijft staan "in ene soort scherpje"
hoop dat ik nu duidelijk ben?? ik begewoon c++ aan het leren voor me zelf
ik heb hellow world gedana en toen een simpele rekenmachine en nu wil ik die rekenmachine knoppen en alles geven om het voor me zelf te leren hoe je zo iets maakt :)
ik heb alle knoppen onder tussen als ik meot ze ider ngo een functie geeven enzo
dat knopje 1 ook daad in werkelijk 1 in vuld enzovoort maar dan heb ik eerst dat "schermpje nodig" waar ik ze kan zien snappie:D?
 
Zoiets?

Code:
#include <windows.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "Knoppen";
char szClassName2[ ] = "Knoppen2";
HWND Button1;
HWND ShowScreen;

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil){
	HWND hwnd; /* This is the handle for our window */
	MSG messages; /* Here messages to the application are saved */
	WNDCLASSEX wincl; /* Data structure for the windowclass */

	/* The Window structure */
	wincl.hInstance = hThisInstance;
	wincl.lpszClassName = szClassName;
	wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
	wincl.style = CS_DBLCLKS; /* Catch double-clicks */
	wincl.cbSize = sizeof (WNDCLASSEX);
	/* Use default icon and mouse-pointer */
	wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
	wincl.lpszMenuName = NULL; /* No menu */
	wincl.cbClsExtra = 0; /* No extra bytes after the window class */
	wincl.cbWndExtra = 0; /* structure or the window instance */
	/* Use Windows's default color as the background of the window */
	wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

	/* Register the window class, and if it fails quit the program */
	if (!RegisterClassEx (&wincl)){
		return 0;
	}
	/* The class is registered, let's create the program*/
	hwnd = CreateWindowEx (
		0, /* Extended possibilites for variation */
		szClassName, /* Classname */
		"Knoppen", /* Title Text */
		WS_OVERLAPPEDWINDOW, /* default window */
		10, /* Windows decides the position */
		10, /* where the window ends up on the screen */
		300, /* The programs width */
		300, /* and height in pixels */
		HWND_DESKTOP, /* The window is a child-window to desktop */
		NULL, /* No menu */
		hThisInstance, /* Program Instance handler */
		NULL /* No Window Creation data */
	);
	/* Make the window visible on the screen */
	ShowWindow (hwnd, nFunsterStil);
	Button1 = CreateWindowEx(NULL,"BUTTON","1",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,40,25,25,hwnd,NULL,hThisInstance,NULL);
	ShowScreen = CreateWindowEx(NULL,"STATIC","het scherm",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,260,25,hwnd,NULL,hThisInstance,NULL);
	/* Run the message loop. It will run until GetMessage() returns 0 */
	while (GetMessage (&messages, NULL, 0, 0)){
		/* Translate virtual-key messages into character messages */
		TranslateMessage(&messages);
		/* Send message to WindowProcedure */
		DispatchMessage(&messages);
	}

	/* The program return-value is 0 - The value that PostQuitMessage() gave */
	return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
	switch (message){ /* handle the messages */
		case WM_COMMAND:
			if(HIWORD(wParam) == BN_CLICKED){
				if((HWND)lParam == Button1){
					SetWindowText(ShowScreen,"1");
				}
			}
			break;
		case WM_DESTROY:
			PostQuitMessage (0); /* send a WM_QUIT to the message queue */
			break;
		default: /* for messages that we don't deal with */
		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}
 
uhmm nee krijg eht neit werkent

Zoiets?

Code:
#include <windows.h>

/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "Knoppen";
char szClassName2[ ] = "Knoppen2";
HWND Button1;
HWND ShowScreen;

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil){
	HWND hwnd; /* This is the handle for our window */
	MSG messages; /* Here messages to the application are saved */
	WNDCLASSEX wincl; /* Data structure for the windowclass */

	/* The Window structure */
	wincl.hInstance = hThisInstance;
	wincl.lpszClassName = szClassName;
	wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
	wincl.style = CS_DBLCLKS; /* Catch double-clicks */
	wincl.cbSize = sizeof (WNDCLASSEX);
	/* Use default icon and mouse-pointer */
	wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
	wincl.lpszMenuName = NULL; /* No menu */
	wincl.cbClsExtra = 0; /* No extra bytes after the window class */
	wincl.cbWndExtra = 0; /* structure or the window instance */
	/* Use Windows's default color as the background of the window */
	wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

	/* Register the window class, and if it fails quit the program */
	if (!RegisterClassEx (&wincl)){
		return 0;
	}
	/* The class is registered, let's create the program*/
	hwnd = CreateWindowEx (
		0, /* Extended possibilites for variation */
		szClassName, /* Classname */
		"Knoppen", /* Title Text */
		WS_OVERLAPPEDWINDOW, /* default window */
		10, /* Windows decides the position */
		10, /* where the window ends up on the screen */
		300, /* The programs width */
		300, /* and height in pixels */
		HWND_DESKTOP, /* The window is a child-window to desktop */
		NULL, /* No menu */
		hThisInstance, /* Program Instance handler */
		NULL /* No Window Creation data */
	);
	/* Make the window visible on the screen */
	ShowWindow (hwnd, nFunsterStil);
	Button1 = CreateWindowEx(NULL,"BUTTON","1",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,40,25,25,hwnd,NULL,hThisInstance,NULL);
	ShowScreen = CreateWindowEx(NULL,"STATIC","het scherm",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,260,25,hwnd,NULL,hThisInstance,NULL);
	/* Run the message loop. It will run until GetMessage() returns 0 */
	while (GetMessage (&messages, NULL, 0, 0)){
		/* Translate virtual-key messages into character messages */
		TranslateMessage(&messages);
		/* Send message to WindowProcedure */
		DispatchMessage(&messages);
	}

	/* The program return-value is 0 - The value that PostQuitMessage() gave */
	return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
	switch (message){ /* handle the messages */
		case WM_COMMAND:
			if(HIWORD(wParam) == BN_CLICKED){
				if((HWND)lParam == Button1){
					SetWindowText(ShowScreen,"1");
				}
			}
			break;
		case WM_DESTROY:
			PostQuitMessage (0); /* send a WM_QUIT to the message queue */
			break;
		default: /* for messages that we don't deal with */
		return DefWindowProc (hwnd, message, wParam, lParam);
	}
	return 0;
}




ik krijg ene error :S

heel raar zit een error in

dit werkt neit

/* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil);
Button1 = CreateWindowEx(NULL,"BUTTON","1",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,40,25,25,hwnd,NULL,hThisInstance,NULL);
ShowScreen = CreateWindowEx(NULL,"STATIC","het scherm",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,260,25,hwnd,NULL,hThisInstance,NULL);
 
uhh??

Welke errors krijg je?


indeze code



/* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil);

>>>>>>>> Button1 = CreateWindowEx(NULL,"BUTTON","1",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,40,25,25,hwnd,NULL,hThisInstance,NULL);
ShowScreen = CreateWindowEx(NULL,"STATIC","het scherm",WS_CHILD |WS_VISIBLE | BS_PUSHBUTTON,10,10,260,25,hwnd,NULL,hThisInstance,NULL);
 
uhhm?

hey was ikw eer ff

zijn e rnog ander code worden voor die window text??

SetWindowText

dan maakt hij er ene vast cijver van ... dus als ik dan een 2e button toe voeg met cijfer 2

en de 1 was al ingevuld maakt hij van die 1 een 2 inplaats van die 2 er achter te zetten :S


sorry als ik zoveel vraag :(
ben blijkbaa rnog neit ver genoeg
 
Dan zal je met een buffer moeten werken, waar het huidige instaat en dat hij dat andere erbij komt te staan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan