Italia
Foro

Bild verschwindet nach Überlagerung

 

Jac
de
Lad
Hallo Frank!

Schau dir mal bitte den Quelltext an. Warum verschwindet das Bild, nachdem das Fenster von einem anderen überlagert wurde? Kann man was dagegen tun?
KompilierenMarkierenSeparieren
declare pdlg&,clo&,dll&,pic&,w&,h&,f$
DEF LoadExtImage(1) !"ProSpeed","LoadExtImage"
DEF FreeExtBmp(1) !"ProSpeed","FreeExtBmp"
DEF GetBmpWidth(1) !"ProSpeed","GetBmpWidth"
DEF GetBmpHeight(1) !"ProSpeed","GetBmpHeight"
DEF CopyExtBmp(9) !"ProSpeed","CopyExtBmp"
cls
dll&=UseDLL("Prospeed.dll")
f$="d:\neue dateien\halo.jpg"anpassen!
pic&=LoadExtImage(Addr(f$))
w&=GetBmpWidth(pic&)
h&=GetBmpHeight(pic&)
pdlg&=Create("Dialog",%HWnd,f$,(%MaxX-w&)/2,(%MaxY-h&-32-%CyCaption)/2,w&,h&+32+%CyCaption)
clo&=Create("Button",pdlg&,"Schließen",w&-84,h&,80,24)
StartPaint pdlg&
CopyExtBmp(%HDC,0,0,w&,h&,pic&,0,0,0)
CopyExtBmp(%HDC2,0,0,w&,h&,pic&,0,0,0)
EndPaint
FreeExtBmp(pic&)

whilenot Or(Clicked(clo&),Equ(%Key,2))

    waitinput

wend

FreeDLL dll&
end

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
26.08.2006  
 




Frank
Abbing
Hi Jac,

das ist eben so, wenn du ein Bild auf ein Dialogfenster legst. Profan supportati die Bilderneuerung nur auf dem Hauptfenster.
Abhilfe kannst du schaffen, wenn du WM_PAINT abfragst und selber neu zeichnest, oder ein Staticcontrol benutzt, das mit einem Bild belegt ist. Für beide Methoden findest du in den Profanforen entsprechende Threads.
 
27.08.2006  
 




Jac
de
Lad
Danke. (Also ich hab das jetzt so verstanden: Wenn ich das Bild auf ein Static lege gibts keine Probleme mehr?! Ich probiers aus)

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
27.08.2006  
 



Nein das ist so auch nicht ganz richtig

Du sollst ein PictureStatic  nehmen  [...] 
 
27.08.2006  
 




Jac
de
Lad
Danke, ich probiers aus...ich machs jetzt mit Timer; sieht eigentlich nicht schlecht aus!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
27.08.2006  
 




Frank
Abbing
[quote:172d9ab7f4]Danke. (Also ich hab das jetzt so verstanden: Wenn ich das Bild auf ein Static lege gibts keine Probleme mehr?! Ich probiers aus)

Nein das ist so auch nicht ganz richtig
Du sollst ein PictureStatic nehmen [...] [/quote:172d9ab7f4]
Natürlich muss das Static ein Bild zeigen können, keine Texte. Sowas erzeugst du auf einfachste Weise so:
KompilierenMarkierenSeparieren
static&=Control("STATIC", "", $54000301, 0,0, 640, 480, dialogfenster&, 2000, %hInstance, $00020000)
>

Den letzten Parameter kannst du auf Null setzen, wenn das Teil keinen Rahmen haben soll.
KompilierenMarkierenSeparieren
text$="Bildname.jpg"
bild&=LoadExtImage(addr(text$))
staticbild&=CreateExtBmp(%hdc,640,480)   Grösse des Statics
SizeExtBmp(staticbild&,0,0,640,480,bild&,0,0,GetBmpWidth(bild&),GetBmpHeight(bild&),0)
newbitmap&=~CreateCompatibleBitmap(staticbild&,640,480)
oldbitmap&=~SelectObject(staticbild&,newbitmap&)
Sendmessage(static&,$0172,0,oldbitmap&)<

bei Programmende:
KompilierenMarkierenSeparieren
newbitmap&=SelectObject(staticbild&,oldbitmap&)
DeleteObject newbitmap&
FreeAllExtBmps()

Unter WindowsXP sind Bitmap-Statics einfacher zu handhaben. Dort ist ein weiteres Grössen-Flag hinzugekommen.
Dieser Code funktioniert so aber ab Windows95.

[quote:172d9ab7f4]Danke, ich probiers aus...ich machs jetzt mit Timer; sieht eigentlich nicht schlecht aus! [/quote:172d9ab7f4]
Äh, verbraucht aber Unmengen Systempower. Machs circa Static. Ist ne sichere Sache.
 
27.08.2006  
 




Jac
de
Lad
Ui, danke Frank, ich probiers aus!
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
28.08.2006  
 




Frank
Abbing
Wehe nicht...
 
28.08.2006  
 




Jac
de
Lad
Das funktioniert trotzdem nicht. Meine Timer-Lösung hat auch maximal eine Auslastung von 19% und das auch nur, wenn ich das Fenster mit hoher Geschwindigkeit circa den Desktop zerre. Also bleibe ich bei meiner Timer-Variante!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
28.08.2006  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.135 Views

Untitledvor 0 min.
Uwe Lang28.12.2012
Andreas Koch19.12.2011

Themeninformationen

Dieses Thema hat 3 subscriber:

Jac de Lad (5x)
Frank Abbing (3x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie