Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

13.04.2008, 15:52

Handles der Steuerelemente an Callbackfunktion weitergeben

Basierend auf dem Listing 10.1 aus "C++ für Spieleprogrammierer" habe ich mal angefangen, mein eigenes Fenster zu erstellen. Als Übung und der Übersicht halber habe ich alles was bisher entstanden ist in 6 verschiedene Dateien gepackt (davon 3 Header-Dateien).

Bis jetzt bin ich auch ohne globale Variablen ausgekommen, aber nun gibt es ein Problem: Die Callbackfunktion kennt jetzt die Handles für die verschiedene Steuerelemente nicht (2 Buttons und eine Editbox). Die bräuchte ich aber für GetWindowText und SetWindowText.
Wie bringe ich die Callbackfunktion nun dazu diese Handles zu erkennen?

Wenn nötig poste ich auch den Code, aber vielleicht gehts ja auch ohne, denn das zieht sich sonst so in die Länge.


Wahrscheinlich gibt es wieder eine ganz einfache Lösung und ich bin immer um Haaresbreite an ihr vorbei. :lol:

2

13.04.2008, 17:00

Hast du das Handle des Parent-Fensters? Dann Controls beim erstellen ID zuweisen und GetDlgItem nutzen!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

3

13.04.2008, 17:32

Den ersten Satz verstehe ich noch und kann die Frage mit ja beantworten, aber der zweite Satz geht über meinen Horizont. Wäre nett wenn du mir noch erklären kannst, wie genau das geht.

4

13.04.2008, 18:47

Wenn du das meinst:
Du musst 'extern' verwenden, um auf Variablen von anderen Dateien zuzugreifen.

5

13.04.2008, 19:16

Globals möchte er eben vermeiden.

C-/C++-Quelltext

1
hControl = GetDlgItem( HWND, ID_MYCONTROL );

Wobei ID_MYCONTROL einen numerischen Wert darstellt und aus einer Ressource stammt oder bei CreateWindow angegeben wurde.

6

13.04.2008, 19:29

Genau sowas habe ich gesucht. Thx dafür :D

7

14.04.2008, 20:15

Und genau das hatte ich geschrieben ;)
Das Problem ist nur, dass wenn du nicht mit Resourcenfiles arbeitest, die ID als Menu-Handle an das Control übergeben musst. Dann klappt das auch mit GetDlgItem ;)
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

8

15.04.2008, 18:31

Jetzt habe ich noch eine Frage: Mit GetWindowText kann man ja scheinbar nur Text "auslesen". Wenn ich nun aber eine Zahl in eine Integer-Variable speichern und dann zum Beispiel mit einer anderen Zahl addieren möchte, dann geht das nicht. Was gibt es denn da für Möglichkeiten?

9

15.04.2008, 19:09

String in Integer umwandeln ;)
std::ostringstream wenn du es sicher haben willst. Sonst atoi.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

10

15.04.2008, 19:19

Und wo muss ich dieses "std::ostringstream" einbauen bzw was macht das?

Werbeanzeige