寻求有关构建图形控件的最佳方法的建议
Posted
技术标签:
【中文标题】寻求有关构建图形控件的最佳方法的建议【英文标题】:Seeking advice on best way to build a graphic Control 【发布时间】:2021-07-25 15:15:12 【问题描述】:我正在尝试构建一个可以绘制集成电路轮廓和引脚的自定义控件。
目前我正在使用 2 个框架,一个包含一个面板,该面板将代表包装轮廓。此框架将放置在表单上。另一个框架将代表一个引脚,其中包含一个表示引脚的形状和两个标签,一个用于引脚编号,一个用于引脚描述。我的计划是根据封装纵横比和管脚数量动态创建管脚。
框架是一个很好的基础还是有更好的选择。
【问题讨论】:
我认为这不是一个好主意。如果我是你,我会用代码手动完成所有事情。创建一个从TCustomControl
派生的自定义控件(这将为您提供一个HWND 和一个可能的键盘界面——如果您不需要,请改用TGraphicControl
)。一些例子:Direct2D:***.com/a/64867049/282848,algosim.org/SynViewSource/SProgressIndicator.html; GDI:***.com/a/7783559/282848、***.com/a/12600297/282848、***.com/a/3902049/282848、***.com/a/3991408/282848。
谢谢,这些例子很有帮助。它给了我一个很好的起点。我开始认为框架是错误的选择,这就是我问原始问题的原因
【参考方案1】:
框架是一个很好的起点,但很重。最好的解决方案可能是构建自定义控件。作为祖先,您可以从 TGraphicControl 或 TWinControl 开始,具体取决于您需要的功能。阅读文档以选择最适合您的案例。
从TWinControl 派生的TCustomControl 是包装Windows 屏幕对象但执行自己的渲染的控件的良好祖先。
我上面链接的文档提供了控件示例。
【讨论】:
谢谢,阅读 TCustomControl 似乎是我想做的一个很好的起点,我会试一试。我将面临的另一个挑战是编写旋转 90 度的文本,但当我有基本的轮廓控制工作时,我会解决这个问题。 @JohnBarrat:编写旋转的文本很简单。将 TFont.Orientation 属性设置为所需的旋转度数。以上是关于寻求有关构建图形控件的最佳方法的建议的主要内容,如果未能解决你的问题,请参考以下文章