------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - FIX THE OPTIONBUTTON CAPTIONS ARE DISPLAYED WITH SHADOW
January 2026
------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), if we set the OptionButton.BackStyle property to 0 (Transparent), sometimes the optionbutton captions are displayed with shadow.
The bug only occurs when the OptionButton.BackStyle property is 0 (Transparent), it does not occur when the OptionButton.BackStyle property is 1 (Opaque).
The bug only occurs for some fonts, for example,
Arial, Consolas, Courier New, Impact, Lucida Console, Microsoft Sans Serif, Segoe UI, Symbol, Tahoma, Times New Roman, Simfang, Simhei, Simkai, Msyh,
it does not occur for other fonts, for example,
Courier, Fixedsys, MS Sans Serif, MS Serif, Modern, Roman, Script, Small Fonts, System, Terminal, Simsun.
The bug only occurs when we select the "Turn on ClearType" checkbox in the Windows Control Panel,
it does not occur when we don't select the "Turn on ClearType" checkbox in the Windows Control Panel.
The bug was reported by Ravil.
In vfp9, sometimes the optionbutton captions are displayed with shadow, please refer to the picture testoptionbuttonbackstyle-vfp9.jpg:
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Label4e5cb9 ::
mov eax , dword ptr [ esp + 20 ] ;0x004e5cb9 : 8b442414
test eax , eax ;0x004e5cbd : 85c0
mov edi , dword ptr [ esp + 24 ] ;0x004e5cbf : 8b7c2418
jne Label4e5ceb ;0x004e5cc3 : 7526
pushd 01h ;0x004e5cc5 : 6a01
mov eax , edi ;0x004e5cc7 : 8bc7
call Fun47d7e3 ;0x004e5cc9 : e8157bf9ff
test eax , eax ;0x004e5cce : 85c0
je Label4e5ceb ;0x004e5cd0 : 7419
pushd 0191h ;0x004e5cd2 : 6891010000
mov edx , 034Ah ;0x004e5cd7 : ba4a030000
mov ecx , edi ;0x004e5cdc : 8bcf
call Fun429844 ;0x004e5cde : e8613bf4ff
test eax , eax ;0x004e5ce3 : 85c0
je Label4e634d ;0x004e5ce5 : 0f8462060000
Label4e5ceb ::
cmp dword ptr [ esi + 0154h ] , 01h ;0x004e5ceb : 83be5401000001
je Label452918 ;0x004e5cf2 : 0f8420ccf6ff
pushd 01h ;0x004e5cf8 : 6a01
push esi ;0x004e5cfa : 56
lea edi , dword ptr [ esp + 090h ] ;0x004e5cfb : 8dbc2490000000
call Fun4e51da ;0x004e5d02 : e8d3f4ffff
;
; -------------------------------------------------------------------------------
; VFP 9.0 FIX - FIX THE OPTIONBUTTON CAPTIONS ARE DISPLAYED WITH SHADOW
; August 2021
; -------------------------------------------------------------------------------
; CCB
;
; If we set the OptionButton.BackStyle property to 0 (Transparent), sometimes the optionbutton captions are displayed with shadow.
;
; 2021/8/14, by ccb
;
mov dword ptr vfpa_optionbuttoncaption_isoptionbuttoncaption,00h
cmp dword ptr vfpa_sys9067_data,00h
je Label4e5d07
cmp dword ptr [ esi + 4 ] , 0335h
jne Label4e5d07
; mov eax , dword ptr [ esp + 24 ]
; mov ecx , dword ptr [ Data9388dc ]
; lea eax , dword ptr [ eax + 4 * eax ]
; shl eax , 05h
; cmp word ptr [ eax + ecx + 16 ] , 0335h
; jne Label4e5d07
push edi
mov edi , dword ptr [ esp + 24 ][04h]
call vfpa_getformvisible
pop edi
cmp eax , 00h
jle Label4e5d07
sub esp , 10h
mov dword ptr [ esp + 04h ] , 04h
mov dword ptr [ esp + 00h ] , 00h
lea edx , dword ptr [ esp + 04h ]
lea eax , dword ptr [ esp + 00h ]
pushd 0FFFFFFFFh ;0x0046e08f : 6aff
push edx ;0x0046e095 : 52
push eax ;0x0046e09a : 50
push 00h ;0x0046e09b : 55
pushd 0FFFFFFFFh ;0x0046e09c : 6aff
pushd 0191h ;0x0046e09e : 68df000000
mov eax , dword ptr [ esp + 24 ][18h][10h]
push eax ;0x0046e0a3 : 56
call Fun433a39 ;0x0046e0a4 : e89059fcff
add esp , 01Ch ;0x0046e0a9 : 83c41c
mov ecx , dword ptr [ esp + 00h ]
add esp , 10h
test eax , eax
je Label4e5d07
test ecx , ecx
je Label4e5d07
sub esp , 10h
mov dword ptr [ esp + 04h ] , 04h
mov dword ptr [ esp + 00h ] , 01h
lea edx , dword ptr [ esp + 04h ]
lea eax , dword ptr [ esp + 00h ]
pushd 0FFFFFFFFh ;0x0046e08f : 6aff
push edx ;0x0046e095 : 52
push eax ;0x0046e09a : 50
push 00h ;0x0046e09b : 55
pushd 0FFFFFFFFh ;0x0046e09c : 6aff
pushd 021h ;0x0046e09e : 68df000000
mov eax , dword ptr [ esp + 24 ][18h][10h]
push eax ;0x0046e0a3 : 56
call Fun433a39 ;0x0046e0a4 : e89059fcff
add esp , 01Ch ;0x0046e0a9 : 83c41c
mov ecx , dword ptr [ esp + 00h ]
add esp , 10h
test eax , eax
je Label4e5d07
xor edx,edx
cmp dword ptr vfpa_sys9067_data,02h
setne dl
neg edx
and ecx,edx
test ecx , ecx
jne Label4e5d07
mov dword ptr vfpa_optionbuttoncaption_isoptionbuttoncaption,01h
Label4e5d07 ::
mov eax , edi ;0x004e5d07 : 8bc7
push eax ;0x004e5d09 : 50
call Fun47d82c ;0x004e5d0a : e81d7bf9ff
;
; -------------------------------------------------------------------------------
; VFP 9.0 FIX - FIX THE OPTIONBUTTON CAPTIONS ARE DISPLAYED WITH SHADOW
; August 2021
; -------------------------------------------------------------------------------
; CCB
;
; If we set the OptionButton.BackStyle property to 0 (Transparent), sometimes the optionbutton captions are displayed with shadow.
;
; 2021/8/14, by ccb
;
Label4e5d0e ::
mov dword ptr vfpa_optionbuttoncaption_isoptionbuttoncaption,00h
Label4e5d0f ::
mov eax , edi ;0x004e5d0f : 8bc7
mov ecx , esi ;0x004e5d11 : 8bce
call Fun4e50f8 ;0x004e5d13 : e8e0f3ffff
jmp Label4e634d ;0x004e5d18 : e930060000
Now in VFP Advanced, the optionbutton captions are displayed without shadow, it is normal.
Please refer to the picture testoptionbuttonbackstyle-vfpa.jpg:
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
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_vfp9fix190.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix184.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix185.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix188.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix189.asp
2, microsoft.com:
https://social.technet.microsoft.com/Forums/windows/en-US/3d60cb6f-4845-4f52-84cb-b57a67fa6029/captions-of-checkbox-labels-and-optionbuttons-gets-darker
https://devblogs.microsoft.com/oldnewthing/20060614-00/?p=30873
3, foxite.com:
https://www.foxite.com/archives/form-labels-get-increasingly-smudged-0000227347.htm
https://www.foxite.com/archives/bug-with-transparents-labels-0000316393.htm
https://www.foxite.com/archives/strange-repaintrefresh-with-win10-0000477579.htm
4, wikis.com:
https://fox.wikis.com/wc.dll?Wiki~TransparentLabelsBoldedDuringScreenUpdates
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|