Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249245 (10681)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Buttons verschwinden bei MbmpCopy
Dirk
| 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
Sven Schmidts
| 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
Dirk
| 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
Frank Abbing
| 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
Dirk
| 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
Frank Abbing
| 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
Dirk Geppert
| 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

| Zurück zur Übersicht