| |
|
|
Stephan Sonneborn | Hallo zusammen,
ich habe bei WIN 7 Enterprise 64 Bit mit der Darstellung eines verzerrten Bitmaps Probleme (getestet auf 2 verschiedenen Rechnern).
Folgender Quelltext zeigt mir nicht den Windows-Start-Hintergrund (oder nur ganz kurz während des Fenstergrößeänderns...) Hat jemend eine Idee, woran es liegt?
Bei WIN7 Home Premium 64 Bit klappt es, bei WIN7 32 Bit auch... KompilierenMarkierenSeparierenSet("Autopaint", 0)
CLS
VAR Bitmap& = Create("Text", %hwnd, "", 10,10,200,50)
VAR HBitmap& = Create("HPic", -1, "c:\\windows\\system32\\oobe\\background.bmp")
Proc Neuzeichnen
StartPaint Bitmap&
DrawSizedPic HBitmap&, 0,0 - 200,50;0
EndPaint
EndProc
Neuzeichnen
While 1
WaitInput 100
Case %wmpaint: Neuzeichnen
Wend
End
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 08.03.2012 ▲ |
|
|
|
|
Wilfried Friebe | Hi Stephan
Ich habe Win 7 Prof 64 Bit. Sobald ich die Fenstergröße verändere ist die Bitmap weg. Sie geht weg sobald ich mit der Maus die Größe verändere und ist erst wieder da wenn ich die linke Maustaste wieder loslasse.
Gruß Wilfried |
|
|
| Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit
Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit
Profan 4.5 bis Xprofan 14 Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins" | 08.03.2012 ▲ |
|
|
|
|
Wilfried Friebe | Hi Stephan
Ich bins nochmal. Bei meinem XP Rechner ist es ähnlich. Das Bitmap geht zwar auch weg, aber es bleibt ein beiges Rechteck.
Gruß Wilfried |
|
|
| Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit
Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit
Profan 4.5 bis Xprofan 14 Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins" | 08.03.2012 ▲ |
|
|
|
|
Jörg Sellmeyer | Hab zwar kein Win7 aber nur zur Info: Bei mir (XP) bleibt die Bitmap da, wo sie soll auch bei Größenänderungen des Fensters. Verwende zwar ein anderes Bild aber das sollte ja egal sein. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 08.03.2012 ▲ |
|
|
|
|
| Da kommen wohl Zeichnungsnachrichten die's %wmPaint nicht setzen und/ oder %wmPaint arbeitet ohne Stack bzw. Nachrichten überlagern am %wmPaint vorbei.
Vielleicht mal testen ob das Problem bereits damit behoben werden kann wenn man die Lösche-Hintergrund-Nachricht (wm_eraseBkGnd) nicht an die eigentliche wProc weiterleitet -
also bei der Nachricht z.B. set("winProc", 0) innerhalb der subClassProc und return 1.
@Stephan & Wilfried: Habt Ihr "Aero" eingeschaltet? |
|
|
| |
|
|
|
Stephan Sonneborn | iF (08.03.12)
@Stephan & Wilfried: Habt Ihr "Aero" eingeschaltet?
Nein, ich hab sogar extra das "alte" Windows, also Windows - klassisch, eingeschaltet.
Es geht allerdings nur mit dem DrawsizedPic nicht, DrawPic geht... Ich habe auch bei XP, WIN 7 32 Bit kein Problem, auch nicht bei WIN7 64 Bit Home Premium.
Das Problem besteht auch beim Zeichnen auf ein Dialogfenster. |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 08.03.2012 ▲ |
|
|
|
|
| Hast Du mal... iF (08.03.12)
Da kommen wohl Zeichnungsnachrichten die's %wmPaint nicht setzen und/ oder %wmPaint arbeitet ohne Stack bzw. Nachrichten überlagern am %wmPaint vorbei.
Vielleicht mal testen ob das Problem bereits damit behoben werden kann wenn man die Lösche-Hintergrund-Nachricht (wm_eraseBkGnd) nicht an die eigentliche wProc weiterleitet -
also bei der Nachricht z.B. set("winProc", 0) innerhalb der subClassProc und return 1.
beachtet/ getestet? |
|
|
| |
|
|
|
Stephan Sonneborn | iF (09.03.12)
Hast Du mal... iF (08.03.12) Da kommen wohl Zeichnungsnachrichten die's %wmPaint nicht setzen und/ oder %wmPaint arbeitet ohne Stack bzw. Nachrichten überlagern am %wmPaint vorbei.
Vielleicht mal testen ob das Problem bereits damit behoben werden kann wenn man die Lösche-Hintergrund-Nachricht (wm_eraseBkGnd) nicht an die eigentliche wProc weiterleitet -
also bei der Nachricht z.B. set("winProc", 0) innerhalb der subClassProc und return 1.
beachtet/ getestet?
Nein, noch nicht, kanns im Moment auch nicht, weil ich auf das System erst am Montag wieder Zugriff hab.
Ich frage mich nur, wieso das auf einigen Systemen nicht geht...
Bin mir nicht sicher, ob ich das richtig verstanden habe mit dem Subclassing... KompilierenMarkierenSeparierenH Messages.ph
$H Windows.ph
Set("Autopaint", 0)
CLS
VAR Bitmap& = Create("Text", %hwnd, "", 10,10,200,50)
VAR HBitmap& = Create("HPic", -1, "c:\\windows\\system32\\oobe\\background.bmp")
SubClassProc
If SubClassMessage(%hWnd, ~wm_eraseBkGnd)
Set("WinProc", 0)
EndIf
RETURN 1
EndProc
Proc Neuzeichnen
StartPaint Bitmap&
DrawSizedPic HBitmap&, 0,0 - 200,50;0
EndPaint
EndProc
SubClass %HWnd, 1
Neuzeichnen
While 1
WaitInput 100
Case %wmpaint: Neuzeichnen
Wend
SubClass %HWnd, 0
End
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 09.03.2012 ▲ |
|
|
|
|
| Ja ungefähr so meinte ich das, es kann aber sein dass das nicht ausreicht weil diese nicht-native subclassproc nicht unterbrechungsfrei arbeitet und man es eigentlich mit einer nProc testen müsste. |
|
|
| |
|
|
|
Dieter Zornow | auf alle Fälle musst du KompilierenMarkierenSeparieren verwenden, nicht %hwnd ansonsten bleibt beim vergrößern des Fenster das Abbild des Fenster an der alten Stelle erhalten. Bei mir gehts dann allerdings Win 7 Premium 64 bit |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 09.03.2012 ▲ |
|
|
|