Autor | Thema: Buttons verschwinden bei MbmpCopy | | Datum:15.01.02 09:36 
(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
|
| | Datum:15.01.02 10:02 
(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
|
| | Datum:15.01.02 10:32 
(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
|
| | Datum:15.01.02 17:08 
(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
|
| | Datum:15.01.02 18:24 
(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
|
| | Datum:15.01.02 20:15 
(frankabbing@12move.de) | |
Hallo Dirk.
Nicht? Dann bin ich selber auch falsch informiert worden, tut mir leid :-(
Gruß, Frank
|
| | Datum: 16.01.02 08:44 
(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
|
|
|