Delphi:透明控件在上网本上变得不透明
发布时间:2020-12-15 09:08:02 所属栏目:大数据 来源:网络整理
导读:出于某种原因,表单上的透明控件在某些计算机上变得不透明.我在“Acer Netbook”和“Thinkpad x600”上得到了报道.该应用程序是使用Delphi 2007构建的. 这就是它的样子: link 虽然看起来像这样: link 表单上的不透明控件是TLabels和TStaticTexts. (我使用TS
出于某种原因,表单上的透明控件在某些计算机上变得不透明.我在“Acer Netbook”和“Thinkpad x600”上得到了报道.该应用程序是使用Delphi 2007构建的.
这就是它的样子: 虽然看起来像这样: 表单上的不透明控件是TLabels和TStaticTexts. (我使用TStaticText控件来定义可点击区域,因为鼠标消息无法处理控件(如标签)转到WM_NCHITTEST处理程序.底部的“按钮”是黑色的,因为我不小心将其颜色设置为clNone,尽管它不应该完全可见.) 为什么会发生这种情况以及如何防止这种情况(除了将文本渲染到背景图像之外的变通方法)? 编辑:我设法在我的笔记本电脑上重现问题,该笔记本电脑运行32位色的Windows XP,并使用经过认证的ATI驱动程序. 解决方法
TLabel和表单之间是否存在TImage?如果是这种情况,则将表单的颜色设置为黑色.当您将TLabel设置为透明时,它会在其父项上绘制它,并且TImage不能具有子控件.实际上,它将表单的颜色呈现在标签上,因为表单是父表单.
另外两种可能的解决方法包括将图像直接涂在表格上(不使用TLabel),但我不知道这是否有效.另一种方法是创建自己的图像控件,它来自TWinControl(而不是TGraphicControl)并且可以包含子控件. YMMV就这些解决方案而言. 我怀疑它在某些机器上不起作用的原因是底层的Windows API库是不同的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |