Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249245 (10681)
  Suchen
 Zurück zur Übersicht
 AutorThema: Buttons verschwinden bei MbmpCopy
Dirk
Datum:15.01.02 09:36 Antwortenals Email verschicken (DiGe@gmx.net) 


Ich habe gleich noch eine Frage:

Wenn ich ein DialogFenster per MbmpCopy neuzeichne
werden leider auch alle darauf verankerten Buttons
überzeichnet und sind somit nicht mehr sichtbar.
Gibt es eine Möglichkeit,Windows zum neuzeichnen
der Buttons zu animieren?

Die einzige Lösung die ich bisher gefunden habe, ist
die Buttons mit DestroyWindows zu entfernen und dann
neu erstellen zu lassen.
Vielleicht wäre noch denkbar MbmpCopy zu stückeln, aber
bei mehr als 2 Buttons wird das auch zu aufwenig.

Habt Ihr eine Idee?

MfG Dirk


Sven Schmidts
Datum:15.01.02 10:02 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Aktualisiere die Buttons einfach mit WM_PAINT:

SendMessage(Button%,$000F,0,0)

Oder, falls das nicht geht, probiere das "enable/disable" Spiel:

EnableWindow(Button%,0)
EnableWindow(Button%,1)

Mit "WM_PAINT" müsste es aber gehen.

Mfg.
Sven Schmidts


Dirk
Datum:15.01.02 10:32 Antwortenals Email verschicken (DiGe@gmx.net) 


> Aktualisiere die Buttons einfach mit WM_PAINT:
> SendMessage(Button%,$000F,0,0)
> Oder, falls das nicht geht, probiere das "enable/disable"
> Mit "WM_PAINT" müsste es aber gehen.

Mit wm_paint gehts leider nicht aber das enable/disable Spiel
funktioniert.
Danke für den Tipp!

Gruß Dirk


Frank Abbing
Datum:15.01.02 17:08 Antwortenals Email verschicken (frankabbing@12move.de) 


Hallo,

die API SetWindowPos() kann so verwendet werden, das alle Bildschirmelemente neu gezeichnet werden. So geht's (mit Windows.ph)

~SetWindowPos(%hwnd,0,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE+SWP_NOZORDER+SWP_FRAMECHANGED)

Gruß, Frank




Dirk
Datum:15.01.02 18:24 Antwortenals Email verschicken (DiGe@gmx.net) 


Frank, wenn ich das so richtig gemacht habe:

Def SetWindowPos(7) !"USER32","SetWindowPos"

SWP_NOSIZE = 1;
SWP_NOMOVE = 2;
SWP_NOZORDER = 4;
SWP_FRAMECHANGED = $20;
....

SetWindowPos(Win%,0,0,0,0,0,$27)

... dann funktioniert Dein Tipp leider nicht.

Gruß Dirk


Frank Abbing
Datum:15.01.02 20:15 Antwortenals Email verschicken (frankabbing@12move.de) 


Hallo Dirk.

Nicht? Dann bin ich selber auch falsch informiert worden, tut mir leid :-(

Gruß, Frank


Dirk Geppert
Datum: 16.01.02 08:44 Antwortenals Email verschicken (DiGe@gmx.net) 


Enable/Disable zeichnet bei EditFelder leider nur die
Fläche neu, jedoch nicht den Rahmen (3D-Layout).
Habe jetzt noch eine Möglichkeit gefunden die das problem
zu lösen scheint:
ShowWindow (Edit%, 0)
ShowWindow (Edit%, 1)
Es wird dann alles vollständig neu gezeichnet...
mann muss dann aber auf jeden Fall das %WmPaint Flag
löschen.

Gruß Dirk


 Zurück zur Übersicht