使用C ++ Builder 10.2,VCL& VCL风格......
我的每个TPageControl
都有TFrames
TTabsheets
。其中一个框架包含一些TEdit
控件,用于显示从设备读取的数据。获取读数并更新帧后,系统可以创建此帧的屏幕截图并将其存储在jpeg文件中。
由于创建jpeg时TTabsheet
中TPageControl
的{{1}} TEdit
可能无法显示,因此jpeg可能没有TEdit
的文本内容控制画。这让我很适合。
我发现通过使用样式化的TStaticText
,文本出现在jpeg中。这似乎是由于TStaticTextStyleHook.Paint
(在VCL.StdCtrls.pas
中)绘制控件而不是让Windows执行它。
使用TStaticText
有两个问题。选择SystemStyle
选项(Windows)会导致TStaticTextStyleHook.Paint
跳过绘制控件本身并委托给Windows(我认为)。此外,TStaticText
的外观并不是我想要的,但我可能不得不忍受它。
Windows是否拒绝绘制TEdit
控件内容,因为父级不是Visible
?
在这种情况下,有没有办法强制Windows绘制TEdit
控件?
UpdateWindow()
和RedrawWindow()
不起作用。