我在使用VCL样式和外部DLL的Delphi 10.1 Berlin中遇到了问题。
我使用Nitgen DLL在我的应用程序中注册指纹。该过程由NBSPCOM.dll
中的COM对象处理。
当我调用方法注册时,DLL中的表单显示为奇数。它显示表格背景,图像和控件是错误的等等。
如果我在XE8中编译应用程序,问题就会消失,一切正常。
我无法找到DLL表单的类来尝试VCL样式挂钩。
表单的一些屏幕截图:
原始表格
错误的表格
答案 0 :(得分:0)
当您使用VCL Styles
时,使用WH_CBT
Hook设置原生winapi控件(Static,Button,RebarWindow32,...),我的猜测是dll使用{{1} }或static
winapi控制绘制图像背景的位置。要解决此问题,您可以使用Button
属性禁用这些控件的样式,如此
Vcl.Themes.TStyleManager.SystemHooks