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

Maxi

Treue Seele

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

11

27.06.2003, 15:43

Kennst du dich überhaupt ein bisschen mit WinAPI aus?
Kannst du ein Fenster erstellen? Vertsehst du die Nachrichtenschleife?

[/code]
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

42

Frischling

  • »42« ist der Autor dieses Themas
  • Private Nachricht senden

12

27.06.2003, 15:58

Das schon ja. Also Fenster ist klar und das mit dem WM_* auch
Jedem sei ein Neuanfang gestatt...

13

27.06.2003, 16:19

Na dann hab ich dir oben schon alles Wichtige gesagt, was zu einer möglichen Lösung führt.

Das wichtigste für dich ist die WM_MOUSEMOVE Message. Da du ihr die Mouse Position bekommst. Wenn (wParam & MK_LBUTTON) == true dann speichere Mouse Pos (lParam). Dann rufe UpdateWindow() auf. Damit das Fenster neu gezeichnet wird.

In WM_PAINT wird dann ganz normal gezeichent

Quellcode

1
2
3
4
5
6
7
8
case WM_PAINT:
{
  PAINTSTRUCT ps;
  HDC hDC = BeginPaint(&ps);
  SetPixel(hDC, x, y, color);
  EndPaint(&ps);
  return 0;
}

Das ist natürlich kein Run Able Code. Es steht aber auch alles in der MSDN. Suchbegriffe sind "WM_MOUSEMOVE" und "WM_PAINT".

PS: Zum neuzeichnen eines Fenster gibt es mehrere Möglichkeiten. "UpdateWindow" ist nur eine davon.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

14

27.06.2003, 16:23

Tipp: Bei einem richtigen Malprogramm reicht es nicht, einzelne Pixel zu setzen. Sobald man die Maus nämlich ein bisschen schneller bewegt, ist es keine Linie mehr, sondern ein Haufen getrennter Punkte. Darum immer die alte Cursorposition mit der neuen durch eine Linie verbinden (Funktionen MoveTo, LineTo).

42

Frischling

  • »42« ist der Autor dieses Themas
  • Private Nachricht senden

15

27.06.2003, 16:34

Vielen Dank, werde das jetzt mal ausprobieren. Nur wie schaffe ich es jetzt noch das wenn ich ein Kreis gezeichnet habe das es mein Programm erkennt?
Jedem sei ein Neuanfang gestatt...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

16

27.06.2003, 16:48

Zitat von »"42"«

Vielen Dank, werde das jetzt mal ausprobieren. Nur wie schaffe ich es jetzt noch das wenn ich ein Kreis gezeichnet habe das es mein Programm erkennt?

Wie meinst Du das jetzt? Soll Dein Programm das Bild analysieren und sagen: "Aha, da ist jetzt ein Kreis!" oder wie?

42

Frischling

  • »42« ist der Autor dieses Themas
  • Private Nachricht senden

17

27.06.2003, 16:59

Und noch zwei Fragen... wie kriege ich das LParam in zwei ints und wie kriege ich schwarzer Farbe? #000000 ;) klapt leider nicht
Jedem sei ein Neuanfang gestatt...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

18

27.06.2003, 17:04

Antworte erst mal auf meine Rückfrage oben.

42

Frischling

  • »42« ist der Autor dieses Themas
  • Private Nachricht senden

19

27.06.2003, 17:06

Sorry, hatte nicht aktualisiert... also das soll so ablaufen wie bei Black&White man zeichnet zum beispiel ein Viereck irgendwo im Fenster und dann soll das Programm das erkennen und zum Beispiel eine MessageBox mit "Ein Viereck" ausgeben.
Jedem sei ein Neuanfang gestatt...

20

27.06.2003, 17:18

Zitat von »"42"«

Und noch zwei Fragen... wie kriege ich das LParam in zwei ints und wie kriege ich schwarzer Farbe? #000000 ;) klapt leider nicht

Waren die Fragen jetzt ernst gemeint ? Wenn ja, schlag ich dir vor, erst einmal die Syntax von C / C++ zu lernen, bevor du dich an die Erkennung von Formen begibst. Dann währe es noch nicht schlecht wenn du dich mit der Allgemeinen Speicherung und dem Aufbau von Variablen beschäftigst.

Speziell zu ersten Frage, schau dir noch mal ganz genau die MSDN Hilfe zu WM_MOUSEMOVE an. Siehe ganz unten.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige