Deutsch
Wünsche und Anregungen

Wunsch: Flackern beim Verändern der Fenstergröße abstellen

 
- Seite 1 -



Jörg
Sellmeyer
Schon bei diesem kleinen Code flackert das Fenster, wenn man die Größe verändert. Ich finde, das sollte nicht sein.
Oder gibts einen Trick, um das auch mit Hausmitteln sicher und nicht zu umständlich zu unterbinden?
KompilierenMarkierenSeparieren
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
08.09.2008  
 



 
- Seite 1 -


Stimmt, es ist immer noch "da".

Zum Glück gilt dies nur für das %hWnd, drum nutze ich das auch immer nur für die Messages und verstecke es meist per 1024 | 2048 .
 
09.09.2008  
 



Hier, das läuft sehr schön:
KompilierenMarkierenSeparieren
 {$cleq}
windowstyle 1024 | 80
window 0,0 - 0,0
windowstyle 4 | 8 | 512
var h&=createWindow(0,"test",10,10,200,300)
Var cb& = Create("CheckBox",h&,"Test",10,2,100,24)
Var lv& = Create("GridBox",h&,"Test",0,10,30,400,400)
AddString(LV&,"Test")

While 1

    WaitInput
    case %key=2 : break

Wend

 
09.09.2008  
 




Jörg
Sellmeyer
Ist zumindest ne kreative Idee, aber z.B. Mausklicks auf dem Fenster werden nicht mehr weitergeleitet. Füg mal AddString(lv&,Str$(%mousepressed))
hinter WaitInput ein.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.09.2008  
 



UserMessage wm_lButtonDown oder subclass lv&,1

Nachtrag: UserMessage wm_lButtonDown geht nicht wirklich.
 
09.09.2008  
 




Jörg
Sellmeyer
Wobei man schon bei einigen Umwegen ist. Btw.: auf dem lv& funktioniert das mit %mousepressed sogar so.
Ich finde aber, Profan sollte einfach von sich aus nicht flackern
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.09.2008  
 



Ist garnicht schlimm:
KompilierenMarkierenSeparieren
windowstyle 1024 | 80
window 0,0 - 0,0
windowstyle 4 | 8 | 512
var h&=createWindow(0,"test",10,10,200,300)
Var cb& = Create("CheckBox",h&,"Test",10,2,100,24)
Var lv& = Create("GridBox",h&,"Test",0,10,30,400,400)
AddString(LV&,"Test")
subClass lv&,1

While 1

    WaitInput
    case %key=2 : break

Wend

subClassProc

    if &sWnd==lv&

        if %sMessage=wm_lButtonDown

        endif

    endif

endproc

und hat auch eine sauberere Struktur.
 
09.09.2008  
 




Frank
Abbing
So gehts:
KompilierenMarkierenSeparieren
 {$iq}
Cls
SetClassLong(%hwnd, GCL_STYLE, (GetClassLong(%hwnd, GCL_STYLE)- CS_HREDRAW - CS_VREDRAW))
Var cb& = Create("CheckBox",%hwnd,"Test",10,2,100,24)
Var lv& = Create("GridBox",%hwnd,"Test",0,10,30,400,400)
AddString(LV&,"Test")

While 1

    WaitInput

Wend

 
09.09.2008  
 



 
- Seite 2 -



RGH
Und das Ganze in reinem XProfan (ohne XPSE):
KompilierenMarkierenSeparieren
 $H windows.ph
Cls
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))
Var cb& = Create("CheckBox",%hwnd,"Test",10,2,100,24)
Var lv& = Create("GridBox",%hwnd,"Test",0,10,30,400,400)
AddString(LV&,"Test")

While 1

    WaitInput

Wend


Gruß
Roland
(überprüft, ob man generell beim Hauptfenster auf die Styles HREDRAW und VREDRAW verzichten könnte)

Nachtrag: Derzeit hat das Hauptfenster im Normalfall die Stile ws_OverlappedWindow | cs_VRedraw | cs_HRedraw | cs_OwnDC | cs_ByteAlignWindow
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
09.09.2008  
 



set("doNotUnUnFlickerTheHwndWindowPlease",1)
 
09.09.2008  
 




Jörg
Sellmeyer
RGH
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))


Genial! Genau sowas habe ich erhofft!

RGH

Gruß
Roland
(überprüft, ob man generell beim Hauptfenster auf die Styles HREDRAW und VREDRAW verzichten könnte)


hm, müßte dann nicht das hier genau das Gleiche bewirken?
KompilierenMarkierenSeparieren
 $H Windows.ph
 $H Messages.ph
userMessages ~wm_eraseBkGnd
Window 10,10,600,500
Var Style& = GetStyle(%hwnd)
print bin$(Style&)
SetStyle %hwnd,Style& | ~cs_HREDRAW | ~cs_VREDRAW
Window 10,10,601,501
print bin$(GetStyle(%hwnd))
waitinput
Var cb& = Create("CheckBox",%hwnd,"Test",10,2,100,24)
Var lv& = Create("GridBox",%hwnd,"Test",0,10,30,400,400)
AddString(LV&,"Test")

While 1

    WaitInput

Wend

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.09.2008  
 



GWL ist nicht GCL bzw. SWL ist nicht SCL.
 
09.09.2008  
 




Jörg
Sellmeyer
Ok - also noch ein Extrastyle. GCL bedeutet dann GetClassLong-Style
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.09.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.803 Betrachtungen

Unbenanntvor 0 min.
Ralf Netz22.05.2021
Sven Bader24.02.2021
Jörg Sellmeyer18.06.2018
ByteAttack07.12.2015
Mehr...

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