Deutsch
Forum

ProSpeedSprites nicht im WINDOW sondern im @CREATE("Win

 
Hallo Community,
habe da mal folgende Frage:
WINDOW xPos, yPos - xWidth, yWidth funktioniert mit ProSpeed wunderbar, wenn wirklich nur mit einem (weiss ich aber nicht so genau) Fenster gearbeitet wird. Wenn ich jedoch mit @Create(Window... und Handles arbeiten möchten funktioniert es so nicht mehr. Wer kann mir helfen, ProSpeedSprites auch in Fenstern, die mit @Create(Window... oder @Create(Dialog... anglegt wurden, anzuzeigen?
Vielen Dank für Eure Antworten.
Tschüss
Stefan Schnell
 
19.04.2004  
 



Hallo Stefan,
nach dem Erstellen des Dialogs musst du dessen Device Context ermitteln...

def GetDC(1) !USER32,GetDC
dlg%=create(DIALOG,%hwnd,,80,40,400,300)
dlgdc&=GetDC(dlg%)

...und die ganzen %hdcs durch dlgdc&s ersetzen, z.B....

Bild&=LoadExtBmp(addr(Datei$),dlgdc&)
Spr&=InitSprite(Bild&,dlgdc&,...)

Alles klar?
Sebastian
 
19.04.2004  
 



Hallo,

das ganze geht auch noch einfacher, und ganz in Profan:

handle&=@Create(Window...)

Startpaint handle&
Dialoghandle&=%HDC
EndPaint

Dialoghandle& hat jetzt den HDC vom betreffenden Dialog gespeichert und kann anstatt %HDC verwendet werden.
Aber Sebastians Lösung ist genauso gut!

Gruß, Frank
 
19.04.2004  
 




ByteAttack
Und wie sieht es aus mit einer Fensterkopie eines Dialogs? Geht das überhaupt?
KompilierenMarkierenSeparieren
Startpaint handle&
Dialoghandle&=%HDC
Dialoghandle2&=%HDC2
EndPaint

funktioniert leider nicht....
 
Website:  [...] 
Facebook:  [...] 
27.11.2007  
 




Thomas
Freier
Ich hatte das mit der TwJpeg.dll seinerzeit gemacht,
KompilierenMarkierenSeparieren
If @MenuItem(6)                                            Belegungsplan speichern

    ~ShowWindow(Test_dlg&,~SW_SHOWMINIMIZED) Listenfenster ausblenden
    Sleep 500
    Load_ThumbJpg Zw$,1,1,Breite%,0,2,1,5
    FilNam$ = Belegungsplan-ist.jpg
    clear bereich#
    HDC_SaveJPG FilNam$,20,20,974,686,Fenster2&,100,0   Fensterlage und JPG Qualität
    ~ShowWindow(Test_dlg&, ~SW_SHOWNORMAL)  Listenfenster einblenden

Geht sicher auch jetzt mit XProfan 10 ohne TwJpeg.dll
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.11.2007  
 




Frank
Abbing
Marc-Gordon
Und wie sieht es aus mit einer Fensterkopie eines Dialogs? Geht das überhaupt?
KompilierenMarkierenSeparieren
Startpaint handle&
Dialoghandle&=%HDC
Dialoghandle2&=%HDC2
EndPaint

funktioniert leider nicht....


Du möchtest den Fensterinhalt kopieren? Geht ganz normal mit CopyExtBmp(). Oder meinst du doch was anderes?
Und verwechsle nicht einen Dialoghandle mit einem HDC, das kann nicht klappen...
 
27.11.2007  
 




ByteAttack
Ich meine es so: Wenn ich in einem Dialogfenster ein Hintergrund habe, und Sprits drüber laufen lasse, benötige ich doch eine Fensterkopie zum Refreschen bzw. damit der Hintergrund nicht gelöscht wird. oder? Im Hauptfenster wäre das einfach hdc2
 
Website:  [...] 
Facebook:  [...] 
28.11.2007  
 




Frank
Abbing
Ach so. Im Dialogfenster musst du nur einen leeren HDC erzeugen und den FensterHDC kopieren. Sind ja nur zwei Zeilen Code, mit Doppelpunkt eine...
 
28.11.2007  
 




ByteAttack
Tut mir Leid Frank. Ich blicks einfach nicht!
KompilierenMarkierenSeparieren
USERMESSAGES 16
Declare psdll&,temp$,bmp&,exit%,Fenster&,Dialoghandle&,LeerHDC&
Def GetSysColor(1) !USER32,GetSysColor
psdll&=usedll($ProgDir+ProSpeed.dll)
 $I Prospeed_Funktionen.inc
Set(TrueColor,1)
WindowStyle 44
WindowTitle %hwnd
Window 0,0-100,100
CLS GetSysColor(15)
Fenster&=Create(Window,%hwnd,Fenster,((%maxX/2)-320),((%maxY/2)-240),640,480)
temp$=$ProgDir+back.bmp Irgendeinbild
bmp&=LoadExtImage(addr(temp$))
StartPaint Fenster&
CLS GetSysColor(15)
Dialoghandle&=%HDC
EndPaint
CopyExtBmp(Dialoghandle&,0,0,%maxX,%maxY,bmp&,0,0,-1)
LeerHDC&=CreateExtBmp(Dialoghandle&,%maxX,%maxY)
CopyExtBmp(LeerHDC&,0,0,%maxX,%maxY,Dialoghandle&,0,0,-1)

WhileNot exit%

    WaitInput
    Case %Umessage=16:exit%=1

EndWhile

FreeExtBmp(bmp&)
FreeExtBmp(LeerHDC&)
freedll psdll&

Funktioniert auch net. Gib mir doch bitte mal ein kleines Beispiel (Bitte, bitte...)
 
Website:  [...] 
Facebook:  [...] 
29.11.2007  
 




Thomas
Freier
Marc, was willst du machen. Hänge mal ein Beispiel (die Arbeit habe ich abgebrochen, da es dann doch nicht gebraucht wurde) an, wo ich *.bmp einsetze. Die Hardcopy ist aus der Anwendung Bootsplatzverwaltung, wo ich auch Namen und Objekte in ein Control setze.

503 kB
Hochgeladen:29.11.2007
Ladeanzahl146
Herunterladen
128 kB
Hochgeladen:29.11.2007
Ladeanzahl153
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
29.11.2007  
 




ByteAttack
Einfach nur Sprites über ein Dialogfenster laufen lassen, ohne das der Hintergrund bzw. das Hintergrundbild auf dem Dialogfenster gelöscht wird.
 
Website:  [...] 
Facebook:  [...] 
29.11.2007  
 




Frank
Abbing
Marc, schau dir einfach mal das Demo FA_SpriteDemo2.prf an. Dort wird es ja gemacht.
Eine eventuelle Rekonstruktion des Hintergrundsfensters muss in dem Fall natürlich manuell erfolgen, bei jedem WM_PAINT mußt du die Kopie nach Dialog->%HDC kopieren... wie gehabt.
 
29.11.2007  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.271 Betrachtungen

Unbenanntvor 0 min.
Thomas Freier07.04.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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