| |
|
|
| 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é. |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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 |
|
|
|
|
|
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) |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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? |
|
|
| |
|
|
|
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) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|
|
| |
|
|
|
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 ▲ |
|
|
|