通常在 wxDialogs 和 wxFrames 中结合现有的Controls控件就足以完成任何 GUI 设计。
使用 wxWidgets 标准控件使您的 GUI 在所有端口上看起来都是原生的,并且显然更容易和更快。
但是,在某些情况下,您需要显示某些不适合任何现有控件的特定类型的数据。在这些情况下,与其为尚未构想的事物破解现有控件,不如编写一个新的小部件。
编写自定义小部件
至少有两种截然不同的方式来实现一个新的小部件。
第一个是在 wxWidgets 现有类上构建它,从而从wxControl或wxWindow派生它。通过这种方式,您将获得一个通用小部件。这种方法的优点是编写单个实现适用于所有端口;缺点是小部件在所有平台上看起来都一样,因此它可能无法与本机外观很好地集成。
第二种方法是直接在您想要支持的平台(例如 GTK+、Carbon 和 GDI)的本机工具包上构建它。通过这种方式,您将获得一个本机小部件。这种方法实际上具有原生外观和感觉的优点,但需要不同的实现,因此需要更多的工作。
在这两种情况下,您都希望更好地探索一些热门话题,例如:
窗口大小概述
自定义事件摘要以实现您的自定义小部件的事件。
您可能还需要熟悉 wxWidgets 源代码,因为您需要与一些未记录的 wxWidgets