Français
Wünsche et Anregungen

Wunsch: hPic-Display vs. Bitmap

 
Bitmaps flickern malheureusement (XP,Vue,7) si on cette so un nouveau hPic zuweisen voudrais:
KompilierenMarqueSéparation
CLS
var HPIC&=CREATE("hNewPic",100,100,$FF0000)
var HBMP&=CREATE("bitmap",%HWND,HPIC&,10,10)

WHILE 1

    WAITINPUT 10
    SENDMESSAGE(HBMP&,370,0,HPIC&)//stm_setImage

END
/a>

Vlt. pourrait on un Contrôle hPicDisplay erfinden welches selbst un zugewiesenes (vlt. gwl_userData) hPic zeichnet z.B. chez wm_draw.

ensuite pourrait on sur so einem Contrôle aussi zeichnen.

 
25.04.2010  
 



c'est mir eh bien enfin gelungen cela aussi la fois trop kompilieren: [...] 

quoi on voit est un "flickerndes" Bitmap.

311 kB
Hochgeladen:21.09.2010
Downloadcounter69
Download
 
21.09.2010  
 




Andreas
Miethe


peux cela aussi am calculateur liegen ? chez mir flackert rien.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
21.09.2010  
 



Salve!

Jain, cela Flackern geschieht sur allen Computern halbwegs juste bzw. je pour ordinateur- Geschwindigkeit et Bitmap-Taille.

chez Bitmaps bzw. BitmapStatics dans liaison avec stm_setImage flackern cet arrêt "mehr ou bien weniger" si on stm_setImage anwendet - je pourrait mir mais présenter cela chez "neusten" UI's comment AREO o.ä. cela Flackern "weggecached" wird mais cela sais je pas.

mon "Idee" est un simple Owner-Draw-Static welches arrêt z.B. chez wm_paint un HPic zeichnet - cet serait ensuite oui de maison aus pas flickern si on une Bildänderung anweist.

peut-être könntest Du mir la fois solch Owner-Draw-Static vormachen - alors eines cela im FastMode avec eigener WProc un beliebiges hPic zeichnet - je schätze je pourrait daraus ensuite wiederum un "Control" herstellen et umbauen pour den "nicht-Fastmode" per WProc comme nProc et Roland pourrait ca ensuite wiederum assez direct dans Delphi umsetzen et direct pour XProfan un Créer("canvas",...) herstellen.
 
21.09.2010  
 




Jörg
Sellmeyer
chez mir flackerts aussi. Windows XP
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.09.2010  
 




Andreas
Miethe


Avez- Du quelque chose dans cette Art ?

j'ai cela plan la fois aus dem Ärmel geschüttelt, daher sommes encore feste Werte drin.
la fois voyons, si je am Wochenende en supplément viens cela auszubauen.
KompilierenMarqueSéparation
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
DEF &CAPTUREBLT $40000000
Struct WNDCLASSEX = ~WNDCLASSEX
Struct PS         = ~PAINTSTRUCT
Declare Ende&,CanvasClassname$
WindowTitle "Canvas"
CLS ~GetSysColor(~Color_BTNFACE)
'Klassen Info holen
Var wndc# = New(WNDCLASSEX)
wndc#.cbSize& = SizeOf(wndc#)
~GetClassInfoEx(%hInstance,"STATIC",wndc#)
'alte controlprocadresse speichern
Var OldWndProc& = wndc#.lpfnWndProc&
' neue controlprocadresse setzen
wndc#.lpfnWndProc& = Procaddr("CanvasProc",4)
'neuen Klassennamen setzen
CanvasClassname$ = "PrfCanvas"
wndc#.lpszClassName& = Addr(CanvasClassname$)
wndc#.hInstance& = %hInstance
' Neue Klasse registrieren
~RegisterClassEx(wndc#)
Set("Fastmode",1)
Var Canvas& = ~CreateWindowEx(0,"PrfCanvas","", ~WS_CHILD | ~WS_VISIBLE | ~SS_SUNKEN,10,10,300,300,%hwnd,0,%hInstance,0)

Whilenot Ende&

    Waitinput

Endwhile

End

Proc CanvasProc

    Parameters wnd&,msg&,wparam&,lparam&

    Select msg&

        Caseof ~WM_PAINT

        Var PS# = New(PS)
        Var DC& = ~BeginPaint(wnd&,PS#)
        ~BitBlt(DC&,0,0,298,298,~GetDC(%Desktop),0,0,~SRCCOPY | &CAPTUREBLT)
        ~EndPaint(wnd&,PS#)
        Dispose PS#
        Return 0

    Endselect

    Return ~CallWindowProc(OldWndProc&,wnd&,msg&,wparam&,lparam&)

ENDPROC

 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 




Andreas
Miethe


Ok, ist déjà étendu.

si es chez Euch flackert peux je pas dire, chez mir flackert rien.
KompilierenMarqueSéparation
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
DEF &CAPTUREBLT $40000000
Struct WNDCLASSEX = ~WNDCLASSEX
Struct PS         = ~PAINTSTRUCT
Struct BITMAP     = ~BITMAP
Declare Ende&,CanvasClassname$
WindowTitle "Canvas"
CLS ~GetSysColor(~Color_BTNFACE)
'Klassen Info holen
Var wndc# = New(WNDCLASSEX)
wndc#.cbSize& = SizeOf(wndc#)
~GetClassInfoEx(%hInstance,"STATIC",wndc#)
'alte controlprocadresse speichern
Var OldWndProc& = wndc#.lpfnWndProc&
' neue controlprocadresse setzen
wndc#.lpfnWndProc& = Procaddr("CanvasProc",4)
'neuen Klassennamen setzen
CanvasClassname$ = "PrfCanvas"
wndc#.lpszClassName& = Addr(CanvasClassname$)
wndc#.hInstance& = %hInstance
' Neue Klasse registrieren
~RegisterClassEx(wndc#)
Set("Fastmode",1)
Var Canvas& = ~CreateWindowEx(0,"PrfCanvas","", ~WS_CHILD | ~WS_VISIBLE | ~SS_SUNKEN | ~SS_BITMAP,10,10,0,0,%hwnd,0,%hInstance,0)
var HPIC&=CREATE("hNewPic",100,100,$FF0000)
SendMessage(Canvas&,~STM_SETIMAGE,0,HPIC&)

Whilenot Ende&

    WAITINPUT 10
    Startpaint HPIC&
    TextColor $00FFFF,$FF0000
    Drawtext 10,10,Time$(0)+":"+Left$(Time$(1),2)
    EndPaint
    SENDMESSAGE(Canvas&,370,0,HPIC&)'stm_setImage

Endwhile

End

Proc CanvasProc

    Parameters wnd&,msg&,wparam&,lparam&

    Select msg&

        Caseof ~WM_PAINT

        Var PS# = New(PS)
        Var DC& = ~BeginPaint(wnd&,PS#)
        Var CompDC& = ~CreateCompatibleDC(DC&)
        Var Bmp& = ~SendMessage(wnd&,~STM_GETIMAGE,0,0)
        Var BMP# = New(BITMAP)
        ~GetObject(Bmp&,SizeOf(BMP#),BMP#)
        Var Width& = BMP#.bmwidth&
        var Height& = BMP#.bmHeight&
        ~SelectObject(CompDC&,Bmp&)
        ~ReleaseDC(CompDC&)
        ~BitBlt(DC&,0,0,Width&,Height&,CompDC&,0,0,~SRCCOPY | &CAPTUREBLT)
        ~EndPaint(wnd&,PS#)
        ~DeleteDC(CompDC&)
        Dispose PS#
        Dispose BMP#
        Return 0

        Caseof ~STM_SETIMAGE

        ~InvalidateRect(wnd&,0,0)

    Endselect

    Return ~CallWindowProc(OldWndProc&,wnd&,msg&,wparam&,lparam&)

ss=s4 href='./../../function-references/XProfan/endproc/'>ENDPROC
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 



super et vielen Dank, pour mon projet sogar déjà trop viel - avec cela peux je super herstellen quoi je meinte!

[offtopic]
Nebenbei bemerkt: qui la ligne Struct WNDCLASSEX = ~WNDCLASSEX peut XPSE abstürzen weil WNDCLASSEX bereits bekannt _und gleichnamig qui Zuweisung - dans prochaine Version behoben. Abhilfe: la ligne simple entfernen là Struktur automatisch eingebunden wird si nécessaire.
[/offtopic]
 
22.09.2010  
 



Hab cela la fois comme Include canvas.inc ( [...]  ) verpackt -

dans cette forme hilft es mir personnelle am meisten.
 
22.09.2010  
 



@Roland: cet Canvassses [...]  sommes simple "super" - encore superer wäre es si XProfan cet de maison aus erzeugen peux et si je mir qui Inc anschaue sommes es aussi seulement wenige Zeilen qui sich oui assez 1:1 pour Delphi portieren liessen trop einem eingebauten create("canvas".
 
22.09.2010  
 




Andreas
Miethe


allô David,

si Du le reste pour Win98 et ME kompatibel faire veux ensuite prends chez Bitblt() den 2.paramètre ()$40000000 chez den Flags raus. . Den J'ai eu seulement pour cela erste Beispiel, pour cela Kopieren des Desktops incorporé. avec cela volonté aussi "Layered Windows" avec eingefangen. Pour normale Bitmaps brauchst Du cela oui pas, et sous Win98 bzw. ME funktioniert qui l'affaire pas avec dem Flag !

la hâte Du déjà la fois probiert den Code avec Xprofan12 courir trop laisser ? chez mir folgt un Absturz.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 



cela Flag nehme je raus, tambour qui Include comme V0.0 aussi une Fil verpasst pour Weiterdranentwickeln ou bien "Blödsinn" comment chez "$40000000" Herausnehmen. ^ ^

>> la hâte Du déjà la fois probiert den Code avec Xprofan12 courir trop laisser ?

Habe je pas getestet weil aktueller xpse pour neuste XProfan 11 Version ist - Je l' pour XProfan 12 seulement fertigstellen muss. un paire Gründe tomber mir déjà un weshalb une XProfan 11 "enh" sous XProfan 12 momentan abstürzen pourrait. ^ ^
 
22.09.2010  
 




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

7.337 Views

Untitledvor 0 min.
Rainer Hoefs02.07.2015
Ernst07.05.2014
Julian Schmidt16.07.2013
Axel Berse20.02.2013
plus...

Themeninformationen



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