【问题标题】:Include mouse cursor in screenshots taken with Firemonkey在使用 Firemonkey 截取的屏幕截图中包含鼠标光标
【发布时间】:2013-03-08 14:59:25
【问题描述】:

我通过How to take a screenshot with FireMonkey (multi-platforms) 接受的答案中的代码将屏幕截图(整个屏幕,不仅是我的表单)写入 TImage,效果很好。但是我想在图像中包含鼠标光标,所以我正在寻找一种解决方案,在第二步中将光标绘制在 TImage 上。

在 Windows VCL 项目中,http://www.swissdelphicenter.ch/torry/showcode.php?id=1124 处的代码运行良好,并将光标绘制在 TImage 上。但我不能让它在 Windows Firemonkey HD 项目中工作,因为这条线

    Canvas.Draw(CurPoxY, CurPoxY, MyCursor);

因为在 Firemonkey 下没有 Draw 方法。我也试过“DrawIcon()”,但它总是返回 False。 我正在尝试让此代码在 Windows 上的 Firemonkey 中工作。

【问题讨论】:

    标签: delphi screenshot firemonkey delphi-xe3 firemonkey-fm2


    【解决方案1】:

    我终于让它工作了。诀窍是:

    DrawIcon() 函数(来自 WinAPI.Windows)不适用于 TImage 现在在 Firemonkey 下具有的 FMX.Types.TBitmap 类型的位图。所以我必须创建一个 Vcl.Graphics.TBitmap 类型的临时位图,我可以在其上绘制光标图标。 然后我创建一个临时 MemoryStream 并使用我的临时 Bitmap 的 SaveToStream 方法将其写入该 MemoryStream,我可以从中将其加载到我的表单上的 TImage (Image1.Bitmap.LoadFromStream(TmpMemoryStream))。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 1970-01-01
      • 2020-06-24
      相关资源
      最近更新 更多