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

Anonymous

unregistriert

1

08.07.2003, 17:31

Button-Frage

Hallo,
ich brauch mehrere Buttons um etwas zu steuern,
dabei soll etwas nur dann gehen wenn man grad klickt,
nwenn man loslässt soll wieder alles stoppen,
mit BN_CLICKED gehts aber nicht als Nachricht, da erst wenn man geklickt hat, dann das ausgelöst wird.
Hab was gefunden was richtig erscheint (BN_PUSHED), aber das geht nicht unter Win32-Systemen wie in der Hilfe von VC++ steht, n Ersatz steht zwar da, aber voll übel erklärt :kotz:

das was ich steuern möcht, mach ich bisher mit den Tasten, aber langsam gehen mir die Tasten aus und unübersichtlich ists auch,

bei den Styles hab ich nur WS_CHILD, WS_VISIBLE und BS_PUSHBUTTON,
was anderes in der Art wie ich möcht gibts da auch nicht,

wie erreich ich jetzt also dass NUR wenn man klickt grad, etwas passiert,
sonst nix?

so in etwa:

if (button wird grad geklickt) { mach das; }
if (button losgelassen) { mach nix; }

danke schonmal
gruß jan :huhu:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

08.07.2003, 18:57

Du könntest die WM_LBUTTONDOWN und WM_LBUTTONUP-Nachrichten abfangen. Die werden gesendet, wenn die linke Maustaste gerade runtergedrückt wurde bzw. wenn sie wieder losgelassen wird. Bei WM_LBUTTONDOWN würdest Du dann einen bool-Wert auf true setzen und bei WM_LBUTTONUP wieder auf false. Und während er true ist, bewegst Du halt Dein Objekt oder was Du eben machen willst.

Anonymous

unregistriert

3

08.07.2003, 23:13

buttons

hallo,
dacht ich mir auch schon,
aber geht nicht,

das sieht so aus bei mir, geht aber nur wenn ich in das hazuoptfenster um die buttonsdrum herum klicke :crying:

die buttons haben keine callback, also ist die abfrage in der callback vom hauptfenster, kann man das irgendwie ändern?

case WM_LBUTTONDOWN:

if ((Maus_x < 300) && ( Maus_x > 0 ))
{
if ((Maus_y < 300) && ( Maus_y > 0 ))
{
mach dies und das und jenes;
macht der zwar aber nur wenn ich nicht
auf die buttons in den bereich klicken
}
}

achja, noch ne 2. frage: hab vergessen jetzt n paar wochen lang
die textur-objekte wieder freizugeben beim programmende,
macht das irgendwas? hat der mir nie angezeigt als fehler drum hab ichs erst beim aufräumen gemerkt.

und ne 3. frage:
wieviel "extern" ist eigentlich noch ok?
weil hab jetzt 7 h/cpp-dateien und in manchen davon stehen 20 bis 30 mal extern das und das ...
extern bool blabla
extern int blbala
...

Anonymous

unregistriert

4

08.07.2003, 23:34

p.s. zu der 3.frage

mit den extern hab ich angefangen weil wenn ich die variablen in der header schreib, dann gibt beim kompilieren nur fehler:

Quellcode

1
2
3
4
5
dxinpu.obj : error LNK2005: "float  CamMoveZ" (?CamMoveZ@@3MA) bereits in dxgrafi.obj definiert
main.obj : error LNK2005: "float  CamMoveZ" (?CamMoveZ@@3MA) bereits in dxgrafi.obj definiert
render.obj : error LNK2005: "float  CamMoveZ" (?CamMoveZ@@3MA) bereits in dxgrafi.obj definiert

main.exe - 3 Fehler, 0 Warnung(en)


aber wenn da in mehreren .cpp-dateien immer

Quellcode

1
2
3
extern ...
extern das...
extern blabla...


steht, gehts zwar aber ist auch nicht grad gut oder?

5

09.07.2003, 01:07

Zu Frage 1:
Benutz mal das Programm Spy++. Damit kannst du dir die Window Message anzeigen lassen. Da gibt es bestimmt eine Message die gesendet wird, wenn ein Button Aktiviert wurde.

Zu Frage 2:
Das gibt nur memory leaks und der Speicher wird auf übelste Art und Weise Fragmentiert und zugemült.

Zu Frage 3:
Na wenn du da noch die übersicht behalten kannst. :hobbi: Ein Limit gibt es da nicht. Dem Compiler ist das Wurst ob man nun 1 oder 10000 extern's hat.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

6

12.07.2003, 10:48

Zitat von »"DragonMaster"«

Dem Compiler ist das Wurst ob man nun 1 oder 10000 extern's hat.
Die Zeit der 64kb-Programme ist vorbei.

7

12.07.2003, 15:52

;D In meinen Programmen wirst du aller höchsten 1 oder 2 extern's finden. Ich finde extern's sehr unübersichtlich und ich mag keine Globalen Variablen ;)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

8

12.07.2003, 18:17

Ich mag globale Variablen schon.

Werbeanzeige