使 StyledTextCtrl 看起来像 TextCtrl 的最简单方法是什么?

What is the easiest way to make StyledTextCtrl look like a TextCtrl?

我需要 StyledTextCtrl 的唯一附加功能如下:

  1. 使用 SetCaretWidth(pixels)
  2. 更改插入符宽度
  3. 使用 self.SetCaretForeground(colour)
  4. 更改插入符号颜色
  5. 将整个背景颜色更改为透明(或 alpha)。我不知道该怎么做。
  6. 更改字体(字体和大小)。这个我也不知道

除此之外,我希望它的行为与普通 TextCtrl. ie. No scrollbars, no multilines etc. A lot of info here 完全一样,但它实在是太大了!那么我要写多少代码才搬起石头砸自己的脚?


有一个示例模型 here,用于快速测试。

您可以使用普通的 wxTextCtrl 执行 (4) 而不会出现任何问题,因此如果您可以忍受这一点,我强烈建议您只使用标准控件。您可以 make the window transparent 但这目前并未在所有端口中实现(尤其是在 wxMSW 中)。其他两点在标准控件中极不可能实现,因为它实际上应该使用标准插入符号。

如果你真的需要 (1) 和 (2),你将不得不使用非原生的 wxStyledTextCtrl 但是你真的应该放弃任何让它的行为与原生控件完全一样的想法,它赢了没用。