| |
|
|
![iF: 10.01.2008](.././../../i/a/1.gif) | Hola Roland,
seit Versión 1 de [X]Profano[²] ha lo una dickes Manko Yo a Tiempo höchstens todavía de uralten Java(tm)-Anwendungen saber: Programas puede no en Fensterskalierung reagieren während el Ventana skaliert se. ![](.././../../i/s/__upl_ext_1111498539.gif)
User könnten fertige Programas como minderwertig einstufen - viele XProfan nutzen deshalb Steife Ventana.
Lo debería posible ser el dieser Code KompilierenMarcaSeparación el Inhalt no sólo después de el Skalierung ausführt. Das Setzen uno entsprechenden UserMessage nutzt insofern nichts como el Messages WaitInput auch sólo después de el Skalierung durchbrechen.
Bitte finde esta una solución - thread.pcu oder subClassen de hWnd son problematisch wegen el ProcAddr-Problema, also no empfehlenswert. Waitinput durchbrechen en wm_sizing como UserMessage wäre ausreichend. También es determinar el wm_erasebkgnd como UserMessage en hWnd Wunder bewirkt - en gesetzter UserMessage flimmert hWnd no beim Skalieren. Ist tal vez ne Brush-Sache - debería aber veces angeschaut voluntad. |
|
|
| |
|
|
|
![Jac de Lad: 10.01.2008](.././../../i/a/137932442848a87713b50bf.gif) Jac de Lad | Dem schließe Yo mich sin Zögern a. Bisher es el sólo el Easyvent.dll posible, el, aufgrund otro Erweiterungen, siempre überflüssiger se. Si el con el Skalieren y con el Message_während_des_Verschiebens va, bleiben eigentlich kaum Wünsche mehr en el Richtung offen.
Jac ![](.././../../i/s/__upl_ext_1100084240.gif) |
|
|
| 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 ▲ |
|
|
|
|
![iF: 10.01.2008](.././../../i/a/1.gif) | Jac
Dem schließe Yo mich sin Zögern a. Bisher es el sólo el Easyvent.dll posible, Jac ![](.././../../i/s/__upl_ext_1100084240.gif) ...
![](.././../../i/s/__upl_ext_1111498502.gif)
Nein, ebenso con el thread-unit y el onevent-unit y/oder con inline-Asm y/oder cada otro Variante des subClassens uno Fensters. Problema hierbei es el todos esta Varianten al proc-addr-Problema leiden - el Programa also potentiell gefährlich ser kann.
Roland podría el procAddr-Aufrufe ebenso en una Stack packen como lo ahora con el mensajes de los usuarios tut (Yo de paso große Klasse finde!).
Dann wären easyVent.dll y onEvent-Unit y el thread-Unit en el vollen Umfange 100% sicher nutzbar.
Oder Roland kommt para esta Problematik con uno eigenen Solución. ![](.././../../i/s/__upl_ext_1197232126.gif) |
|
|
| |
|
|
|
![RGH: 10.01.2008](.././../../i/a/20.gif) RGH | Das Problema es, dass Yo Windows bislang no dazu puede moverse, el Waitinput a verlassen, während uno con ratón al Rahmen zieht. Selbst si yo en meiner Wuindowsprozedur en wm_sizing reagiere y una variable poner, el sonst inmediatamente para Verlassen des WaitInput führt, klappt que aquí no. (Wenn Yo como testweise una Bildschirmausgabe einbaue, se esta tatsächlich inmediatamente während el Größenveränderung durchgeführt.
Übrigens läßt el gleiche Problematik con el Temporizador zeigen: KompilierenMarcaSeparación |
|
|
|
|
![iF: 10.01.2008](.././../../i/a/1.gif) |
Das Problema es, dass Yo Windows bislang no dazu puede moverse, el Waitinput a verlassen ... Wenn Yo como testweise una Bildschirmausgabe einbaue, se esta tatsächlich inmediatamente während el Größenveränderung durchgeführt.)
Dann Waitinput no verlassen - drinn bleiben. Wenn una Bildschirmausgabe klappt entonces könntest Usted a dieser Punto tal vez auch una Procedimiento aufrufen event.wm_sizing(h,wparam,lparam) ![](.././../../i/s/__upl_ext_1111498551.gif) |
|
|
| |
|
|
|
![Frank Abbing: 10.01.2008](.././../../i/a/noavatar.gif) Frank Abbing |
Nein, ebenso con el thread-unit y el onevent-unit y/oder con inline-Asm y/oder cada otro Variante des subClassens uno Fensters. Problema hierbei es el todos esta Varianten al proc-addr-Problema leiden
El Inline-Ensamblador-Método krankt no daran.
Roland, du könntest alternativ en WM_MOUSEMOVE/WM_NCMOUSEMOVE prüfen, si el Fenstergröße verändert ha. |
|
|
| |
|
|
|
![RGH: 10.01.2008](.././../../i/a/20.gif) RGH | Frank Abbing
Roland, du könntest alternativ en WM_MOUSEMOVE/WM_NCMOUSEMOVE prüfen, si el Fenstergröße verändert ha.
Das hilft desafortunadamente auch no. Wenn Yo demnächst una größeren Block Tiempo finde, voluntad Yo mich veces näher así befassen, qué Windows como anstellt y cómo Yo a el Kontrolle komme, während I, con ratón el Fensterrahmen zwecks Größenänderung erfaßt halte.
Saludo 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 ▲ |
|
|
|
|
![iF: 10.01.2008](.././../../i/a/1.gif) | @Franco: El inlineasm-Variante es ebenso nutzlos si uno el Controls por XProfan-Proc repositionieren möchte. PS: Su Avatar passt irgendwie! ![](.././../../i/s/__upl_ext_1100084240.gif)
@Roland: SBM_GETSCROLLINFO es hiervon ebenso betroffen - auch hier wäre lo muy muy wichtig el WaitInput verlassen se. |
|
|
| |
|
|
|
![Frank Abbing: 10.01.2008](.././../../i/a/noavatar.gif) Frank Abbing | IF
@Franco: El inlineasm-Variante es ebenso nutzlos si uno el Controls por XProfan-Proc repositionieren möchte. PS: Su Avatar passt irgendwie!
Sí, aber wer macht el ya? Avatar paßt? Wozu porque? ![](.././../../i/s/__upl_ext_1197232126.gif) |
|
|
| |
|
|
|
![RGH: 18.01.2008](.././../../i/a/20.gif) RGH | So se lo en el nächsten experimentellen Subscriptionsversion ir: KompilierenMarcaSeparación $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: - El Función SubClassMessage() macht sólo en el SubClassProc Sinn. Wenn el Función verdadero (1) ergibt, se el Original Windowsprozedur para el entsprechende Ventana no mehr aufgerufen, ansonsten se ellos antes el ENDPROC automáticamente aufgerufen. (Will uno una Message behandeln y trotzdem el Originalroutine anschließend aufrufen, puede ser en lugar de SubClassMessage() una Abfrage encima %sWin uns %SMessage hacer.) - El SubClassProc se ejecuta grundsätzlich en el FastMode de. - El SubClassProc se grundsätzlich en el WaitInput aufgerufen y außerhalb des WaitInput ignoriert. - Das alte SetMenuItem N% kommt a neuer Geltung: Damit se el WaitInput verlassen y uno kann encima MenuItem(N%) nun tatsächlich en todos Messages incluso reagieren. (Siehe Ejemplo. Hier se z.B. el übliche Mensajes del usuario 16 überflüssig, en el Beenden abzufangen.)
Wenn dieses Verfahren se en media Tests como stabil erweist, podría lo Eingang en el endgültige Versión 11 encontrar.
Saludo 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 ▲ |
|
|
|
|
![iF: 18.01.2008](.././../../i/a/1.gif) | imprimir J+mkstr$(a,&getTickCount) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ![](.././../../i/s/crazy.gif) |
|
|
| |
|
|
|
![Jörg Sellmeyer: 18.01.2008](.././../../i/a/8132362004294faafc5e8c.jpg) Jörg Sellmeyer | Sieht muy fresco de. Un Cuestión Yo aber todavía: Im waitinput bedeuted wahrscheinlich, daß Usted en Deiner WaitInput-Procedimiento el Auslesen el Subclassmessages erledigst, oder? Ist el porque ahora en cada WaitInput así, sólo el Ventana principal bezogen, oder kann/se/muß al irgendwie ausschalten, si yo z.B. una Dialogfenster con eigener Bucle y WaitInput öffne? Saludo Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... ![](https://www.wuestensand.info/images/CoverFataMorganaklein.jpg) | 18.01.2008 ▲ |
|
|
|