|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 27.08.2006, 18:56 Titel: WinAPI Zeichung wieder entfernen? |
|
|
Hi zusammen, betrifft zwar nicht FB, aber dafür die WinApi und ich hoffe ihr könnt mir helfen. Hier mal mein Code:
Code: | hWndDC = api_GetDC( example_window ) ;--> DC (Device Context) zum Zeichnen holen
api_Ellipse( hWndDC, 0, 0, 200, 200 ) ;--> Ellipse
PS_SOLID = 0 ;--> Linienart
pen = api_CreatePen( PS_SOLID, 1, $FF00FF ) ;--> Rahmen
brush = api_CreateSolidBrush( $00FF00 ) ;--> Füllfarbe
api_SelectObject(hWndDC, pen) ;--> Linienfarbe zuweisen
api_SelectObject(hWndDC, brush) ;--> Füllfarbe zuweisen
api_Rectangle( hWndDC, 100, 100, 400, 400 ) ;--> Rechteck
For x=0 To 500 Step 10 ;--> Punkte
For y=0 To 500 Step 10
api_SetPixel( hWndDC, x, y, $0000FF ) ;--> Color in BGR !!!
Next
Next
api_DeleteObject pen
api_DeleteObject brush
api_ReleaseDC( example_window, hWndDC ) ;--> DC freigeben |
so, alles wo "api_" davorsteht sind die API Aufrufe in meiner Programmiersprache, sollte also verständlich sein. In diesem Beispiel zeichne ich ein paar Sachen direkt in ein Fenster (example_window). Das klappt auch prima, nur möchte ich das gezeichnete auch wieder löschen können, so das mein Fenster wieder "sauber" ist und ich google schon 2 Stunden und bin einfach zu doof was zu finden.
Bin dankbar für Vorschläge. EPS _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 27.08.2006, 20:50 Titel: |
|
|
schnufff...ok, das Problem da oben hat sich erledigt. Die Antwort lautet:
Code: | api_InvalidateRect example_window, tRect , True |
das leert den angegeben Bereich.
Nun hab ich aer ein neues Problem. Um das jetzt mal etwas zu präzisieren, zeig ich mal ein Bild von dem was ich haben möchte:
So, wie ihr seht ist da ein Fenster in welches Punkte gezeichnet sind. Obendrauf sind einige Gadgets (Button, TextEdit).
Das momentane Problem ist das nach einem ändern der Fenstergröße die Punkte verschwinden. Gleiches passiert auch wenn das Fenster minimert und maximiert wird, also prinzipiell nach einem Redraw des Fensters.
Wenn ich nun aber die Punkte ständig aktualisiere, landen diese ÜBER den Gadgets, was nicht nur dämlich aussieht, sondern auch nicht so sein soll:
FRAGE: Wie kann ich die Grafik/Zeichnung in dem Fenster statisch machen? _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 28.08.2006, 09:15 Titel: |
|
|
Tja, wärs meine eigene GUI würd ich sagen: "kein Thema", aber was sagt Windows dazu?
Wie soll ich das anstellen?
PS: Frage an den Admin, wieso klappt das Informieren per E-Mail bei mir eigentlich nicht? _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 28.08.2006, 12:32 Titel: |
|
|
Äh...ich weiß net, ich kann auch daneben sein, aber die WM_PAINT-Nachricht, ist das nicht das, wonach du suchst? Außerdem kann man bei der Erstellung des Fensters angeben, bei welchen Größenänderungen (horizontal/vertikal) eine WM_PAINT-Message verschickt wird. Is' aber auch nur 'ne Idee, da ich das mit "wär's meine eigene GUI" nicht ganz gerafft hab. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 28.08.2006, 16:40 Titel: |
|
|
Das mit "mein GUI" sollte ein Witz sein.
Danke für den Tipp mit WM_Paint, werd mal in der Richtung etwas nachforschen. _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 29.08.2006, 12:21 Titel: |
|
|
Aso.
Wie gesagt, alles unter vorbehalt, aber: wie erstellst du dein Fenster?
In deiner "WNDCLASS"-Variable muss "style=CS_HREDRAW Or CS_VREDRAW" sein. Dann müsste eigentlich eine PAINT-Message verschickt werden. _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|