wxWidgets:可扩展的自定义控件

时间:2013-07-04 10:39:01

标签: user-interface wxwidgets

我正在尝试在wxWidgets中创建自定义控件,如下所示:

custom control

它包含wxTextCtrl和wxBitmapButton。创建它很容易,但我的目标是创建可扩展的控件,在XP,Vista,Win 7,Win 8,Mac OS X中看起来都一样。

当用户在OS中更改字体大小时,通常本机控件会调整其大小(125%,150%,200%)。 在我的情况下,这样的控件应该增加wxTextCtrl的大小,并在此按钮中增加wxBitmapButton和image的大小。

这就是为什么我的问题是:

  1. 如何在wxBitmapButton中创建可伸缩的图像? (也许我应该使用像.svg这样的矢量图像?)

  2. 如何识别我应该在wxBitmapButton中增加图像大小?

  3. 我不打算使用原生控件,因为我希望它们在所有操作系统中看起来都一样

1 个答案:

答案 0 :(得分:0)

目前没有可移植的方法来响应wxWidgets中的系统字体大小更改,因此您可以做的最好是尊重程序启动期间生效的字体大小。为此,只需使用GetTextExtent()GetChar{Height,Width}()的{​​{1}}或wxWindow方法,而不是对程序中的像素值进行硬编码即可。