wxString

关于wxWidgets控件出现乱码

旧街凉风 提交于 2021-02-15 09:36:45
这两天在用wxWidgets做一个小程序,突然遇到了一个控件显示出现乱码的问题。 首先声明:我用的编译器是Visual Studio 2005,wxWidgets版本是2.8.12,下面的解决方法不一定对所有的平台都有效。 我们知道,wxWidgets中控件显示字符串一般都是用wxString,例如下面的一小段代码创建并显示一个按钮: // 创建一个按钮,显示名称就是“按钮” wxButton* oneButton = new wxButton( itemFrame1, ID_BUTTON, wxT("按钮"), wxDefaultPosition, wxDefaultSize, 0); // 把这个按钮放在一个BoxSizer中 itemBoxSizer->Add(oneButton, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5); 上面的代码没有错误,显示截图如下: 但是,很多情况下,我们想要显示的控件的标签是先放在char *中的,我们当然要先转换成wxString,转换的方法有很多,比如用wxString::FromUTF8(),或者可以定义一个wxString对象,调用Printf方法。然而,两种方法都不行。 如下代码: char *label = "按钮"; wxString wxLabel; wxLabel.Printf(wxT("%s")