c - 通过第三方插件在我的应用程序中实现绘图的更好方法是什么?

标签 c windows winapi c++builder

我创建了该应用程序,为其编写的所有插件都应该绘制在我的表单上的特殊位置,该位置将是随机的或专门为插件选择的,因此每次坐标都是随机的。他们还应该使用标准的 Windows GDI 函数,如 Rectangle()、FillRect()、TextOutA() 等。 完成此任务的更好方法是什么?我知道我应该在我的程序中创建绘图引擎,我有两个选择:使用命名管道或使用 Windows 消息。也许有人实现并测试了其他方法?

最佳答案

为了使用 GDI 函数,它们需要访问 HDC 句柄。如果您的应用预留了 TPanel 或其他合适的窗口容器用于绘图,那么它可以将容器的 HWND 句柄传递给插件,然后插件可以获得 需要时通过 GetDC()GetWindowDC() 手动进行 HDC。如果您选择将实际的 HDC 传递给插件,那么您可以预留一个 TPaintBox 或其他合适的非窗口容器,这不需要专用的 HWND 和相关资源。

关于c - 通过第三方插件在我的应用程序中实现绘图的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525562/

相关文章:

c - 使用 glibc regex.h 在 C 中进行电子邮件验证

c++ - 是否有工具/解决方案来编写一个循环,其中仅在每 X 次迭代中检查条件?

delphi - 为什么@运算符返回的地址与GetProcAddress函数返回的地址不同

c++ - 即使使用FILE_FLAG_DELETE_ON_CLOSE属性创建的文件也保留在磁盘上

windows - 整数原子的使用

c - 获取 JPEG 冗余数据

C删除函数中的循环双向链表

c++ - Windows 的免费内存调试器?

python - 如何基于python shebang从powershell运行python程序?

windows - Symfony2 intl 仅支持 "en"