--------------------------------------------------------------
                      [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.