--------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - MOVING THE DOCKABLE WINDOWS
January 2026
--------------------------------------------------------------
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.
|