我正在尝试将图像添加到考虑透明度的 TDbgrid 列中。在 DBGridDrawColumnCell 过程中从画布上的 TImageList 绘制图像时,我需要图像的背景(与左下角的像素颜色相同)具有透明度。我希望这个透明区域显示高亮颜色或非高亮颜色,尤其是在使用主题时,例如 Aero。我已经能够在旧版本的 Windows 中使用 clHighlight 或 clWindow 作为背景颜色的颜色值来完成此操作。但是对于 Aero 主题,它总是在图像的不透明部分后面绘制一个框,而不是 Aero 使用的渐变蓝色突出显示颜色。我怎样才能做到这一点?
我相信我应该使用 alpha 通道,但我不确定如何从 TImageList 到画布执行此操作。我相信在我开始在单元格的画布上绘制之前,单元格已完全用实际的突出显示颜色绘制。我只想绘制图像的非透明部分并留下背景。