-------------------------------------------------------------- [BUG/PRB.] VFP 9.0 FIX - MOVING THE DOCKABLE WINDOWS January 2024 -------------------------------------------------------------- CCB 1. BUG: In vfp9 (and vfp7, vfp8), when we are moving the dockable windows (dragging the title bar) on Windows Vista or later, there is a shadow and it is very slow. Please refer to the picture dockable9.png: 2. CAUSE: There are some BUGs in the following code. 3. RESOLUTION: We can write some code to fix the BUG. Fun785ccc :: ; proc near mov edx , dword ptr [ esp + 12 ] ;0x00785ccc : 8b54240c sub esp , 0158h ;0x00785cd0 : 81ec58010000 push ebx ;0x00785cd6 : 53 push ebp ;0x00785cd7 : 55 mov ebp , dword ptr [ esp + 0164h ] ;0x00785cd8 : 8bac2464010000 push esi ;0x00785cdf : 56 push edi ;0x00785ce0 : 57 pushd 010h ;0x00785ce1 : 6a10 lea ecx , dword ptr [ esp + 24 ] ;0x00785ce3 : 8d4c2418 mov esi , eax ;0x00785ce7 : 8bf0 call Fun42c19b ;0x00785ce9 : e8ad64caff mov edx , dword ptr [ esp + 0170h ] ;0x00785cee : 8b942470010000 pushd 010h ;0x00785cf5 : 6a10 lea ecx , dword ptr [ esp + 40 ] ;0x00785cf7 : 8d4c2428 call Fun42c19b ;0x00785cfb : e89b64caff ; ; --------------------------------------------------- ; VFP 9.0 FIX - MOVING THE DOCKABLE WINDOWS ; July 2016 ; --------------------------------------------------- ; CCB ; ; When we are moving the dockable windows (dragging the title bar) on Windows Vista or later, ; there is a shadow and it is very slow. ; ; 2016/7/14, by ccb ; cmp dword ptr vfpa_sys9000_data,00h jne Label785d00 lea ecx , dword ptr [ esp + 20 ] lea edx , dword ptr [ esp + 36 ] mov eax , dword ptr [ esp + 016Ch ] push edx push ecx push eax call vfpa_movedockable jmp Label78608f Label785d00 :: mov eax , dword ptr [ esp + 0178h ] ;0x00785d00 : 8b842478010000 cmp dword ptr [eax] , 00h ;0x00785d07 : 833800 je Label785d43 ;0x00785d0a : 7437 mov eax , dword ptr [ esp + 36 ] ;0x00785d0c : 8b442424 add eax , 0Ch ;0x00785d10 : 83c00c mov dword ptr [ esp + 68 ] , eax ;0x00785d13 : 89442444 add eax , 028h ;0x00785d17 : 83c028 mov dword ptr [ esp + 76 ] , eax ;0x00785d1a : 8944244c mov eax , dword ptr [ esp + 48 ] ;0x00785d1e : 8b442430 mov dword ptr [ esp + 80 ] , eax ;0x00785d22 : 89442450 sub eax , 014h ;0x00785d26 : 83e814 mov dword ptr [ esp + 48 ] , eax ;0x00785d29 : 89442430 sub eax , esi ;0x00785d2d : 2bc6 mov dword ptr [ esp + 72 ] , eax ;0x00785d2f : 89442448 push esi ;0x00785d33 : 56 mov edx , esi ;0x00785d34 : 8bd6 lea ebx , dword ptr [ esp + 108 ] ;0x00785d36 : 8d5c246c lea eax , dword ptr [ esp + 72 ] ;0x00785d3a : 8d442448 call Fun785a91 ;0x00785d3e : e84efdffff Now in VFP Advanced, we can move the dockable windows without the shadow and it is faster. Please refer to the picture dockable.png: 4. APPLIES TO: VFP 7.0.0.9262 VFP 7.0.0.9465 (SP1) VFP 8.0.0.2521 VFP 8.0.0.3117 (SP1) VFP 9.0.0.2412 VFP 9.0.0.3504 (SP1) VFP 9.0.0.4611 (SP2) VFP 9.0.0.5015 (SP2) VFP 9.0.0.5411 (SP2) VFP 9.0.0.5721 (SP2) VFP 9.0.0.5815 (SP2) VFP 9.0.0.6303 (SP2) VFP 9.0.0.6602 (SP2) VFP 9.0.0.7423 (SP2) The bug has been fixed in VFP Advanced. 5. REFERENCE WEBSITES: 1, baiyujia.com: http://www.baiyujia.com http://www.baiyujia.com/vfpdocuments/f_vfp9fix19.asp 2, microsoft.com: https://social.msdn.microsoft.com/Forums/en-US/dfc44f3b-41fc-4a25-bd57-9e530f96479a/vfp9-development-environment-problems-with-windows-7-64bit https://social.msdn.microsoft.com/Forums/en-US/bbe4bdc6-28ea-49d4-99d1-f5277360cc02/disabling-dockable-windows-setting-windows-in-non-dockable-mode https://social.msdn.microsoft.com/Forums/en-US/f9d9b4f4-5c1b-4208-be78-8a0cc0951761/command-window-in-vista 3, narkive.com: http://microsoft.public.fox.programmer.exchange.narkive.com/IhetP77S/vfp-9-0-command-window-moves-very-jerkily-when-moved-in-vista 4, powerchurch.com: https://www.powerchurch.com/support/kb.php?oldid=66&type=1 5, tek-tips.com: http://www.tek-tips.com/viewthread.cfm?qid=1048977 6. OTHER: For reference only, there is no guarantees. Any questions or suggestions, please send me an email at ccb2000@163.com. |