WNDCLASS Clipping
Verfasst: 05.03.2008 11:37
Hi
Wie kann ich PureBasic bez. Windows beibringen den Fenster-Inhalt selbst zu Updaten?
Ich Zeichne das Fenster (Skin) mit einigen Grafikbefehlen. Dann, wenn ein #PB_Event_Repaint Ereignis auftritt Zeichne ich das Fenster erneut. So weit so gut. Wenn ich jedoch dann z.B. ein OpenFileRequester-Dialog öffne, so wird das Fenster nicht mehr neu gezeichnet da kein #PB_Event_Repaint eingeht bis der Dialog wieder geschlossen wird.
Ich habe dann versucht das Problem mit einem Thread zu lösen was aber bei mehreren Fehnstern langsam zu einer Orgie wird und alles andere als sauber Programmiert wirkt.
In der MSDN hab ich dann die WNDCLASS gefunden, in welcher etwas von CS_SAVEBITS, CS_VREDRAW und CS_OWNDC steht.
Ist es möglich mit diesen Windows den Kram des neuzeichnens zu überlassen?
Setze ich mit SetClassLong_(WindowID(0),#GCL_STYLE, #CS_SAVEBITS) das #CS_SAVEBITS oder #CS_OWNDC Flag, so erhalte ich von PB einen Fehler bei StartDrawing() und StopDrawing() meiner Repaint-Funktion.
Edit: #WS_CLIPSIBLINGS | #WS_CLIPCHILDREN bringt auch nichts.
Echt, langsam habe ich echt Lust PB zu löschen und wieder VB6 oder .NET zu nutzen wo man nicht so einen Aufwand betreiben muss um nur das Fenster Updaten zu können
Wie kann ich PureBasic bez. Windows beibringen den Fenster-Inhalt selbst zu Updaten?
Ich Zeichne das Fenster (Skin) mit einigen Grafikbefehlen. Dann, wenn ein #PB_Event_Repaint Ereignis auftritt Zeichne ich das Fenster erneut. So weit so gut. Wenn ich jedoch dann z.B. ein OpenFileRequester-Dialog öffne, so wird das Fenster nicht mehr neu gezeichnet da kein #PB_Event_Repaint eingeht bis der Dialog wieder geschlossen wird.
Ich habe dann versucht das Problem mit einem Thread zu lösen was aber bei mehreren Fehnstern langsam zu einer Orgie wird und alles andere als sauber Programmiert wirkt.
In der MSDN hab ich dann die WNDCLASS gefunden, in welcher etwas von CS_SAVEBITS, CS_VREDRAW und CS_OWNDC steht.
Ist es möglich mit diesen Windows den Kram des neuzeichnens zu überlassen?
Setze ich mit SetClassLong_(WindowID(0),#GCL_STYLE, #CS_SAVEBITS) das #CS_SAVEBITS oder #CS_OWNDC Flag, so erhalte ich von PB einen Fehler bei StartDrawing() und StopDrawing() meiner Repaint-Funktion.
Edit: #WS_CLIPSIBLINGS | #WS_CLIPCHILDREN bringt auch nichts.
Echt, langsam habe ich echt Lust PB zu löschen und wieder VB6 oder .NET zu nutzen wo man nicht so einen Aufwand betreiben muss um nur das Fenster Updaten zu können
