Français
Forum

LoadExtMemory et Static champ

 
allô gens,

viel habe je encore pas avec Prospeed gemacht et daher peux es son cela mon Frage gelächter auslöst.
On peut einem Static champ un BMP zuweisen, quoi on auparavant avec LoadImageA lire hat. qui Hintergrund ist, dass on ensuite joli Scrollen peux sans sich um den Neuaufbau des Fensters trop kümmern.
eh bien versuche je un Bild quoi je auparavant avec LoadExtMemory erstellt habe per SendMessage à cela Static champ trop transfert, quoi naturellement pas allez.
Gibt es une Possibilité, dass cela Static champ cela Bild à nimmt?
ou bien une comment je un Bild dans einem avec CreateWindow erstelltem la fenêtre, quoi kleiner comme cela Bild ist, Montrer peux et ensuite avec Scrollbars es Déplacer peux?

Viele Grüße
Georg
 
24.04.2004  
 



allô Georg.

pourquoi Gelächter ?
Du übergibst dem Static, soviel je sais, une Handle sur une Bitmap. ProSpeeds LoadExt...() gibt dir mais den Handle des HDCs zurück, à den qui Bitmap gekoppelt ist. avec cela funktioniert SendMessage naturellement pas.
Du müßtest den Handle qui Bitmap aus dem HDC erfragen, cela allez mittels qui API GetCurrentObject():

bitmaphandle&=GetCurrentObject(prospeedhdc&,7) 7 = OBJ_BITMAP

avec diesem Handle devrait es problemlos marcher...

Salut, Frank
 
24.04.2004  
 



allô Frank,

vielen Dank pour qui Antwort.
malheureusement klapt es encore pas entier, on voit zwar cela quelque chose passiert mais cela Bild wird pas angezeit, siehe Code.

direct encore une autre Frage, si le Desktopauflösung aus 16Bit steht et on un 24Bit Bild anzeigt entstehen naturellement Schlieren. peux on ca irgendwie tourner autour de, weil si je es mir dans einem Grafikprogramm ansehe wird es richtig angezeigt.

Viele Grüße
Georg
KompilierenMarqueSéparation
 $I ProSpeed_UseDll.inc
 $I Prospeed_Funktionen.inc
DEF GetCurrentObject(2) ! "GDI32","GetCurrentObject"
Declare Bild$,Lenght&,Memory#,BildHDC&,BildHandle&,ExFenster&,BildFenster&
WindowStyle $200 + $8
WINDOW 150,100-800,600
WINDOWTITLE "HauptFenster"
SETTRUECOLOR 1
CLS RGB(212,208,200)
Bild$ = "bild.bmp"
Lenght& = FileSize(Bild$)
Dim Memory#,Lenght&
ReadFileFast(Addr(Bild$),Memory#,0,Lenght&)
BildHDC& = LoadExtMemory(Memory#,Lenght&)
BildHandle& = GetCurrentObject(BildHDC&,$7)
ExFenster& = CreateWindow(%HWND,"Test",50,50,700,500)
BildFenster& = Control("STATIC","",$5000110E,10,10,650,400,ExFenster&,2001,%hinstance)
SendMessage(BildFenster&,$172,0,BildHandle&)
WaitInput
DestroyWindow(ExFenster&)
Dispose Memory#
FreeAllExtBmps()
 $I ProSpeed_FreeDll.inc
Fin
 
24.04.2004  
 



Salut,

peux du mir den Source plus benötigter Fichiers zusenden?
ensuite peux ego besser testen...

Salut, Frank
 
24.04.2004  
 



Salut,

ok, hab den Source modifiziert, sodas il maintenant funktioniert.
Pour alle anderen Mitleser: cela hab je Georg geschrieben:

So, hab deinen Code modifiziert.
qui Static-Message STM_SETIMAGE funktioniert seulement avec Bitmaps, qui pas à une HDC gekoppelt sommes.
c'est quelquefois so, et seulement M$ sais pourquoi... Hat mich selber aussi déjà quelques Haare gekostet

eh bien, je erstelle maintenant une Pseudobitmap et koppelte vous à den HDC. Freundlicherweise wird unsere Bitmap dadurch
ausgekoppelt et cela Handle wird retour. Wir sparen uns dadurch GetCurrentObject.
Am Ende (solange cela Static existiert!) wird wieder zurückgekoppelt et qui Pseudobitmap gelöscht.
So simple ist cela )
KompilierenMarqueSéparation
 $I ProSpeed_UseDll.inc
 $I Prospeed_Funktionen.inc
DEF CreateCompatibleBitmap(3) ! "GDI32","CreateCompatibleBitmap"
DEF SelectObject(2) ! "GDI32","SelectObject"
Declare Bild$,Lenght&,Memory#,BildHDC&,ExFenster&,BildFenster&,XBig&,YBig&,x&,y&
WindowStyle $200 + $8
WINDOW 150,100-800,600
WINDOWTITLE "HauptFenster"
SETTRUECOLOR 1
CLS RGB(212,208,200)
Bild$ = "test.jpg"
Lenght& = FileSize(Bild$)
Dim Memory#,Lenght&
ReadFileFast(Addr(Bild$),Memory#,0,Lenght&)
BildHDC& = LoadExtMemory(Memory#,Lenght&)
XBig& = GetBmpWidth(BildHDC&)
YBig& = GetBmpHeight(BildHDC&)
x&=CreateCompatibleBitmap(BildHDC&,100,100) Irgendeine Bitmap erstellen
y&=SelectObject(BildHDC&,x&) und an den HDC koppeln. y&=Vorheriger Bitmaphandle (also unser)
ExFenster& = CreateWindow(%HWND,"Test",50,50,650,650)
BildFenster& = Control("STATIC","",$5000110E,10,10,XBig&,YBig&,ExFenster&,2001,%hinstance)
SendMessage(BildFenster&,$172,0,y&) STM_SETIMAGE
WaitInput
DestroyWindow(ExFenster&)
Dispose Memory#
SelectObject(BildHDC&,y&) Ursprüngliche Bitmap (unsere) wieder einsetzen
DeleteObject x& und die "irgendeine" ordnungsgemäß löschen
FreeAllExtBmps()
 $I ProSpeed_FreeDll.inc
Fin

Salut, Frank
 
24.04.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

2.801 Views

Untitledvor 0 min.
funkheld15.01.2022
Uwe Lang07.02.2019
Andreas Koch19.12.2011

Themeninformationen

cet Thema hat 1 participant:

unbekannt (5x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie