| |
|
|
| ¡Hola Personas,
viel Todavía no con Prospeed gemacht y por lo tanto kann lo ser el mi Cuestión gelächter auslöst. Se puede una Static Feld una BMP zuweisen, qué vorher con LoadImageA eingelesen ha. Der Hintergrund es, dass una continuación schön Scrollen kann sin son el Neuaufbau la ventana a kümmern. Nun versuche Yo una Bild Yo vorher con LoadExtMemory erstellt habe por SendMessage a el Static Feld a transferencia, qué natürlich no va. Gibt lo una Möglichkeit, dass el Static Feld el Bild a nimmt? Oder una Yo una Bild en un con CreateWindow erstelltem Ventana, qué kleiner como el Bild es, Mostrar kann y luego con Scrollbars lo mover kann?
Viele Grüße Georg |
|
|
| |
|
|
|
| ¡Hola Georg.
¿Por qué Gelächter ? Usted übergibst el Static, soviel Yo weiß, una Handle en una Mapa de bits. ProSpeeds LoadExt...() son dir aber el Handle des HDCs zurück, a el el Mapa de bits gekoppelt es. Damit funktioniert SendMessage natürlich no. Usted müßtest el Handle el Mapa de bits de el HDC erfragen, el va mittels el API GetCurrentObject():
bitmaphandle&=GetCurrentObject(prospeedhdc&,7) 7 = OBJ_BITMAP
Mit diesem Handle müßte lo problemlos trabajo...
Saludo, Franco |
|
|
| |
|
|
|
| ¡Hola Franco,
vielen Dank para el Antwort. Leider klapt lo todavía no bastante, uno sieht zwar el algo passiert aber el Bild no es angezeit, siehe Code.
Direkt ni otro Cuestión, si la Desktopauflösung de 16Bit es y uno una 24Bit Bild anzeigt entstehen natürlich Schlieren. Kann uno dies irgendwie umgehen, porque si yo lo me en un Grafikprogramm ansehe se lo correcto adecuado.
Viele Grüße Georg KompilierenMarcaSeparación $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
End
|
|
|
| |
|
|
|
| ¡Hola,
kannst du me el Source plus benötigter Archivos zusenden? Dann kann ego mejor testen...
Saludo, Franco |
|
|
| |
|
|
|
| ¡Hola,
ok, tener el Source modifiziert, sodas él ahora funktioniert. Für todos otro Mitleser: Das tener Yo Georg geschrieben:
So, tener deinen Code modifiziert. El Static-Message STM_SETIMAGE funktioniert sólo Bitmaps, el no a una HDC gekoppelt son. Es manchmal así, y sólo M$ weiß por qué... Sombrero mich También se ya algunos Haare gekostet
Na sí, Yo erstelle ahora una Pseudobitmap y koppelte ellos a el HDC. Freundlicherweise se unsere Mapa de bits dadurch ausgekoppelt y el Handle se zurückgegeben. Wir sparen uns dadurch GetCurrentObject. Am Ende (solange el Static existiert!) se otra vez zurückgekoppelt y el Pseudobitmap gelöscht. So simplemente es el ) KompilierenMarcaSeparación $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
End
Saludo, Franco |
|
|
| |
|
|