【发布时间】:2013-08-22 13:14:03
【问题描述】:
我需要什么
我需要获取 Firemonkey 组件的TCanvas 的 DC。我需要这个来使用无法通过 Firemonkey 访问的 Win API 绘图功能,主要是 100% 控制字体渲染。
显然,这是一个纯 Windows 应用程序,因此与 OSX 的任何兼容性都不是问题。
我做了什么
我设法获取了 TForm 的句柄并将其转换为 HWND,然后使用GetDC(FmxHandleToHWND(Handle)); 获取 DC
这是Character_PaintBox 控件的OnPaint 处理程序。
HWND hWND = FmxHandleToHWND(Handle);
HDC hDC = GetDC(hWND);
int x = PreviewBack_Rectangle->Position->X + Character_PaintBox->Position->X;
int y = PreviewBack_Rectangle->Position->Y + Character_PaintBox->Position->Y;
TextOut(hDC,x,y,L"Test",4);
ReleaseDC(hWND,hDC);
这是表单的 DC,我写的任何内容都会在下次更新时被覆盖。
这在 VCL 中是一项简单的任务,而在 Firemonkey 中不可能那么复杂,或者?
【问题讨论】:
-
对 Firemonkey 没有任何经验,但也许将您的 GDI 绘制到内存位图中并在 firemonkey 中显示该位图会更好。
标签: winapi c++builder firemonkey gdi