win32 gui

# shell ich habe beides ausprobiert wPARAM und WPARAM beidesmal bekomme ich einen Error.
Bei WPARA ist es
C:\....\main.cpp|149|error: expected primary-expression before ')' token|
#ComFreek. Danke ich werde es mir morgen einmal anschauen. :)


@ ich habe oben einmal die php tags durch cpp ersetzt danke
 
Moment...WPARAM ist doch der Typname?
Zeig einmal die erste Zeile der Funktion (Returntyp, Funktionsname, Parameter)
 
Edit: "ja man haette mal selber auf die parameter schauen sollen. wParam funktioniert ..."

Edit2:



Und schon stehe ich wieder vor einen Problem. Wie aender ich den Text der Textbox. Ich habe jetzt einfach einmal auf WindowSetText() getippt und so eine Funktion existiert sogar.

Die Beschreibung passt:

"Changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. "

C++:
SetWindowText(
  __in      HWND hWnd,
  __in_opt  LPCTSTR lpString
);
Die Funktion erfordert einen HWND. Also wird warscheinlich der Wert benoetigt, der bei der WindowCreate() Funktion zurueckgegeben wurde.
Soweit so gut, ich kenne es von anderen Programmiersprachen aber so, dass ich meine Objecte direkt per ID ansprechen kann. Wofuer habe ich meinen Textboxen ueberhaupt eine ID gegeben, wenn diese nirgends gebraucht wird.


Gibt es HWND arrays?

Pseudo Code


C++:
static HWND hwndTextbox[200]

.
.
.

WM_CREATE : 
	{
	
	for(int i ....)
		{
 		hwndTextbox[i] = CreateWindow();
		{
	break;
	}

WM_COMMAND :
	{
	for(int i ....)	
		{
		SetWindowText(hwndTextbox[i],"Value");
		}
	break;
	}
 
Zuletzt bearbeitet:
Gut, hast du also schon selbst gemerkt :)

Zum Videotutorial: Ich hab mir dein verlinktes VT nicht angeschaut,
aber wer garantiert denn, dass es fehlerfrei ist?
Gerade bei Videos kann man Fehler im Nachhinein schwer ausbessern
(wenn man nicht alles neu machen will).

edit: Die Standardschriftgröße hier ist 2.
 
Zuletzt bearbeitet:
@shell wie gesagt, es war mein eigener Fehler (wie so oft ..) Letzens habe ich soviel mit CAPS oder Kleinschreibung gearbeitet, dass ich nicht auf die Idee gekommen bin, dass es eine Kombination von beiden haette sein koennen. :?

Ich bin mir nicht sicher ob ihr alle meinen spaeten Edit noch gesehen habt, deswegen poste ich den Inhalt meines letzen Posts nocheinmal :)


.
.
.


Und schon stehe ich wieder vor einen Problem. Wie aender ich den Text der Textbox. Ich habe jetzt einfach einmal auf WindowSetText() getippt und so eine Funktion existiert sogar.

Die Beschreibung passt:

"Changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. "

C++:
SetWindowText(
  __in      HWND hWnd,
  __in_opt  LPCTSTR lpString
);
Die Funktion erfordert einen HWND. Also wird warscheinlich der Wert benoetigt, der bei der WindowCreate() Funktion zurueckgegeben wurde.
Soweit so gut, ich kenne es von anderen Programmiersprachen aber so, dass ich meine Objecte direkt per ID ansprechen kann. Wofuer habe ich meinen Textboxen ueberhaupt eine ID gegeben, wenn diese nirgends gebraucht wird.


Gibt es HWND arrays?

Pseudo Code


C++:
static HWND hwndTextbox[200]

.
.
.

WM_CREATE : 
	{
	
	for(int i ....)
		{
 		hwndTextbox[i] = CreateWindow();
		{
	break;
	}

WM_COMMAND :
	{
	for(int i ....)	
		{
		SetWindowText(hwndTextbox[i],"Value");
		}
	break;
	}
 
Hm. Ich muss zugeben, dass ich bis jetzt gar nicht viel über CreateWindow nachgedacht habe und mich einfach darauf verlassen habe, dass da im Param 9 eine ID sein soll.
Aber nachdem ich wieder einmal die Doku angeschaut habe: Von welcher ID redest du?
Parameter 9 ist ein HMENU. Menü, nicht ID.

Und ja, HWND-Arrays gibt es.
Man kann von jedem Variablentyp Arrays machen.
 
Zuletzt bearbeitet:
Die Funktion erfordert einen HWND. Also wird warscheinlich der Wert benoetigt, der bei der WindowCreate() Funktion zurueckgegeben wurde.
Soweit so gut, ich kenne es von anderen Programmiersprachen aber so, dass ich meine Objecte direkt per ID ansprechen kann. Wofuer habe ich meinen Textboxen ueberhaupt eine ID gegeben, wenn diese nirgends gebraucht wird.

Die Windows-API arbeitet beim Zugriff auf Fenster und Controls prinzipiell immer mit dem Fensterhandle (HWND). Du kannst aber trotzdem deine IDs verwenden, indem du das Fensterhandle zu der ID mit der API-Funktion
C++:
HWND GetDlgItem(HWND hDlg,int nIDDlgItem);
ermittelst.

Gruß
MCoder
 
Zurück