我正在使用wxWIdgets显示文本框并使用
m_passwordText = new wxTextCtrl(m_panel, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(250, wxDefaultSize.GetHeight()), wxTE_PASSWORD);
我想让这个文字有时可见,有时看不见(黑点)。有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
根据wxWidgets 3.0手册,您可以使用wxGTK但不能使用wxMSW(windows)。
对于GTK,要动态更改文本框样式,您可以执行以下操作:
textbox->SetWindowStyle(wxTE_PASSWORD);
textbox->Refresh();
在Windows上,看起来有一种后门方式来改变它,用这个:
bool hidepwd = true;
HWND hwnd = (HWND) textbox->GetHandle();
SendMessage(hwnd, EM_SETPASSWORDCHAR, hidepwd ? 0x25cf: 0, 0); // 0x25cf is ● character
textbox->Refresh();
有关在wxWidgets论坛上执行此操作的旧讨论:https://forums.wxwidgets.org/viewtopic.php?t=15093