Français
Wünsche et Anregungen

Oberwunsch: Fensterskalierung

 
allô Roland,

depuis Version 1 de [X]Profan[²] hat es un dickes Manko comment je zur Zeit au maximum encore de uralten Java(tm)-Anwendungen kenne: Programme peut pas sur Fensterskalierung réagir au cours de cela la fenêtre skaliert wird.

User könnten fertige Programme comme minderwertig einstufen - viele XProfaner nutzen c'est pourquoi Steife la fenêtre.

Es sollte possible son cela cette Code
KompilierenMarqueSéparation
den le contenu pas seulement pour qui Skalierung ausführt. cela mettons einer entsprechenden UserMessage utilise insofern rien là qui Messages WaitInput aussi seulement pour qui Skalierung durchbrechen.

s'il te plaît finde hierfür une Solution - thread.pcu ou bien subClassen de hWnd sommes problematisch à cause de dem ProcAddr-Problem, alors pas empfehlenswert. Waitinput durchbrechen chez wm_sizing comme UserMessage wäre ausreichend. Ebenso ist festzustellen cela wm_erasebkgnd comme UserMessage sur hWnd Wunder bewirkt - chez gesetzter UserMessage flimmert hWnd pas beim Skalieren. Ist peut-être ne Brush-l'affaire - sollte mais la fois angeschaut volonté.
 
10.01.2008  
 




Jac
de
Lad
Dem schließe je mich sans Zögern à. Bisher ist cela seulement avec qui Easyvent.dll possible, qui, aufgrund anderer Erweiterungen, toujours überflüssiger wird. si cela avec dem Skalieren et avec dem Message_während_des_Verschiebens allez, rester eigentlich à peine Wünsche plus dans qui direction offen.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
10.01.2008  
 



Jac
Dem schließe je mich sans Zögern à. Bisher ist cela seulement avec qui Easyvent.dll possible, Jac ...



non, ebenso avec qui thread-unit et qui onevent-unit et/ou bien avec inline-Asm et/ou bien chacun anderen variante des subClassens eines Fensters. Problem hierbei ist cela alle cet Varianten am proc-addr-Problem leiden - cela Programme alors potentiell périlleux son peux.

Roland pourrait qui procAddr-Aufrufe ebenso sur une Stack saisir comment il es maintenant avec den messages de l'utilisateur tut (quoi je incidemment grand super finde!).

ensuite wären easyVent.dll et onEvent-Unit et qui thread-Unit im vollen Umfange 100% sûrement nutzbar.

ou bien Roland venez pour cet Problematik avec einer eigenen Solution.
 
10.01.2008  
 




RGH
cela Problem ist, dass je Windows jusqu'alors pas en supplément bewegen peux, cela Waitinput trop sortir de, au cours de on avec qui souris am cadre zieht.
Selbst si je dans meiner Wuindowsprozedur sur wm_sizing reagiere et une variable mets, qui sonst tout de suite zum sortir de des WaitInput führt, klappt que voici pas. (si je là testweise une Bildschirmausgabe einbaue, wird cet réellement tout de suite au cours de qui Größenveränderung durchgeführt.

Incidemment läßt sich qui gleiche Problematik avec dem Minuteur montrer:
KompilierenMarqueSéparation
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
10.01.2008  
 




cela Problem ist, dass je Windows jusqu'alors pas en supplément bewegen peux, cela Waitinput trop sortir de
...
si je là testweise une Bildschirmausgabe einbaue, wird cet réellement tout de suite au cours de qui Größenveränderung durchgeführt.)


ensuite Waitinput pas sortir de - drinn rester. si une Bildschirmausgabe klappt ensuite könntest Du à cette Stelle peut-être aussi une Procédure appel event.wm_sizing(h,wparam,lparam)
 
10.01.2008  
 




Frank
Abbing

non, ebenso avec qui thread-unit et qui onevent-unit et/ou bien avec inline-Asm et/ou bien chacun anderen variante des subClassens eines Fensters. Problem hierbei ist cela alle cet Varianten am proc-addr-Problem leiden


qui Inline-Assembler-Methode krankt pas daran.

Roland, du könntest alternativ chez WM_MOUSEMOVE/WM_NCMOUSEMOVE vérifier, si sich qui Fenstergröße modifié hat.
 
10.01.2008  
 




RGH
Frank Abbing
Roland, du könntest alternativ chez WM_MOUSEMOVE/WM_NCMOUSEMOVE vérifier, si sich qui Fenstergröße modifié hat.


cela hilft malheureusement aussi pas. si je bientôt une größeren Block Zeit finde, werde je mich la fois näher avec cela befassen, quoi Windows là anstellt et comment je à qui Kontrolle viens, au cours de je avec qui souris den Fensterrahmen zwecks Größenänderung erfaßt halte.

Salut
Roland
 
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
10.01.2008  
 



@Frank: qui inlineasm-variante ist ebenso nutzlos si on qui Controls per XProfan-Proc repositionieren voudrais. PS: Dein Avatar passt irgendwie!

@Roland: SBM_GETSCROLLINFO ist hiervon ebenso betroffen - aussi ici wäre es très très important cela WaitInput sortir de wird.
 
10.01.2008  
 




Frank
Abbing
iF
@Frank: qui inlineasm-variante ist ebenso nutzlos si on qui Controls per XProfan-Proc repositionieren voudrais. PS: Dein Avatar passt irgendwie!


oui, mais qui pouvoir cela déjà?
Avatar paßt? Wozu car?
 
10.01.2008  
 




RGH
So wird es dans qui prochain experimentellen Subscriptionsversion aller:
KompilierenMarqueSéparation
 $H Messages.ph

SubClassProc

    If SubClassMessage(%hWnd, ~wm_sizing)

        SetStyle %hwnd, 1, GetStyle(%hwnd, 1) | $02000000   WS_EX_COMPOSITED
        Resize

    ElseIf SubClassMessage(bt&, ~wm_rbuttondown)

        SetText bt&, Autsch!

    ElseIf SubClassMessage(bt&, ~wm_rbuttonup)

        SetText bt&, Test1
        SetMenuItem 3000

    ElseIf SubClassMessage(st&, ~wm_mousemove)

        SetMenuItem 3001

    ElseIf SubClassMessage(%hwnd, ~wm_close)

        SetMenuItem 3999

    EndIf

EndProc

Proc Resize

    SetWindowPos bt& = 0, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
    SetWindowPos bt2& = Width(%HWnd)/2, 50 - Width(%HWnd)/2, Height(%HWnd) - 75
    SetWindowPos st& = 0, 0 - 0,0; 0
    SetWindowPos tb& = 0, 0 - 0,0; 0

EndProc

declare bt&, bt2&, st&, tb&
declare ende%
cls
st& = create(StatusWindow, %HWnd, Statuszeile)
tb& = create(Toolbar, %HWnd,0,15,1,1000,1)
bt& = create(Button, %HWnd, Test1, 0, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
bt2& = create(Button, %HWnd, Test2, Width(%HWnd)/2, 50, Width(%HWnd)/2, Height(%HWnd) - 75)
SubClass %HWnd, 1 SubClassing des Hauptfensters einschalten
SubClass bt&,   1 SubClassing des 1. Buttons einschalten
SubClass st&,   1 SubClassing der Statuszeile einschalten

whilenot ende%

    waitinput

    If %Key = 4

        Resize
        SetStyle %hwnd, 1, GetStyle(%hwnd, 1) - $02000000

    ElseIf MenuItem(3000)

        MessageBox(Rechtsklick auf Button 1!,Test,0)

    ElseIf MenuItem(3001)

        MessageBox(Mausbewegung über Statuszeile!,Test,0)

    ElseIf MenuItem(3999)

        Case Messagebox(Wollen Sie das Programm wirklich verlassen?,Frage,36) = 6 : Ende% = 1

    EndIf

endwhile

Subclassing wieder ausschalten
SubClass %HWnd, 0
SubClass bt&, 0
SubClass st&, span>
end

Hinweise:
- qui Funktion SubClassMessage() pouvoir seulement dans qui SubClassProc Sinn. si qui Funktion véritable (1) ergibt, wird qui Original Windowsprozedur pour cela entsprechende la fenêtre pas plus aufgerufen, ansonsten wird vous avant dem ENDPROC automatisch aufgerufen. (veux on une Message behandeln et quand même qui Originalroutine anschließend appel, peux on statt SubClassMessage() une Abfrage sur %sWin uns %SMessage faire.)
- qui SubClassProc fonctionne grundsätzlich im FastMode ab.
- qui SubClassProc wird grundsätzlich im WaitInput aufgerufen et außerhalb des WaitInput ignoriert.
- cela vieille SetMenuItem N% venez trop neuer Geltung: avec cela wird cela WaitInput sortir de et il peut sur MenuItem(N%) eh bien réellement sur alle Messages selbst réagir. (Siehe Beispiel. ici wird z.B. cela übliche Utilisateur Messages 16 überflüssig, um cela finissons abzufangen.)

si cet procéder sich dans meinen Tests comme stabil erweist, pourrait es entrée dans qui final Version 11 trouver.

Salut
Roland
 
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
18.01.2008  
 



imprimer J+mkstr$(a,&getTickCount) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
18.01.2008  
 




Jörg
Sellmeyer
Sieht très cool aus. une Frage habe je mais encore:
Im waitinput bedeuted wahrscheinlich, qui Du dans Deiner WaitInput-Procédure cela Lecture qui Subclassmessages erledigst, ou bien?
Ist cela car maintenant dans chaque WaitInput so, seulement sur cela Hauptfenster bezogen, ou bien peux/soll/doit on cela irgendwie ausschalten, si je z.B. un Dialogfenster avec eigener Boucle et WaitInput ouvre?
Salut
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.01.2008  
 




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

10.263 Views

Untitledvor 0 min.
Peter Max Müller22.10.2017
E.T.02.01.2016
ByteAttack09.08.2015
Normann Strübli22.08.2014
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