C++ wxWidgets获取显示wxString(单行)所需的像素数-wxDC::GetTextExtent可以';这不是唯一的办法

C++ wxWidgets获取显示wxString(单行)所需的像素数-wxDC::GetTextExtent可以';这不是唯一的办法,c++,wxpython,wxwidgets,C++,Wxpython,Wxwidgets,我需要获得字符串所需的空间(自定义小部件的东西-如此合法的使用!),这是在任何绘制调用之前需要的,所以我还没有一个绘制DC(尚未)来调用 现在我认为所需的空间是字体的函数,而不是DC,但我还没有找到一种方法 我确实找到了一些wxPython的答案(这不是一件坏事,两者之间很容易切换!),但它们涉及到获取一个DC,然后调用GetTextExtent 必须有一个有效的方法 (我正在使用wxWidgets 2.8) 另一个“答案” 它还创建了一个DC 另一个, 创建一个wxDC,我不能这样做,因为它

我需要获得字符串所需的空间(自定义小部件的东西-如此合法的使用!),这是在任何绘制调用之前需要的,所以我还没有一个绘制DC(尚未)来调用

现在我认为所需的空间是字体的函数,而不是DC,但我还没有找到一种方法

我确实找到了一些wxPython的答案(这不是一件坏事,两者之间很容易切换!),但它们涉及到获取一个DC,然后调用GetTextExtent

必须有一个有效的方法

(我正在使用wxWidgets 2.8)

另一个“答案”

它还创建了一个DC

另一个,


创建一个wxDC,我不能这样做,因为它是一个抽象基类(当然是ofc)

如果您需要它只是为了测量,您可以在任何时候创建一个
wxClientDC
。而
GetTextExtent()
是测量单个字符串最有效的方法。对于多个字符串,
GetPartialTextExtents()
可能更有用。

您绝对需要一个DC来计算,因为DC连接到打印机而不是屏幕时,答案会发生变化。