稍后设置wxTE_PASSWORD

时间:2012-04-19 14:57:57

标签: c++ wxwidgets

我创建了两个wxTextCtrl。一个用于登录(loginTxt),另一个用于密码(pwdTxt),两者都具有可读的默认消息。

我还安装了wxEVT_LEFT_DOWN事件,这样当用户点击loginTxt或pwdTxt时,默认消息将被设置为空字符串

以后可以将wxTE_PASSWORD样式设置为pwdTxt吗?如果有可能,我该怎么做?

我读了wx.chm,它说,

“请注意,在wxMSW和wxGTK上创建控件后,可以动态更改对齐样式(wxTE_LEFT,wxTE_CENTRE和wxTE_RIGHT).wxTE_READONLY,wxTE_PASSWORD和包装样式可以在wxGTK下动态更改,但不能在wxMSW下动态更改。其他样式只能设置在控制创建期间。“。

我正在使用wxWidgets 2.9.3在MS Windows上编写我的应用程序

2 个答案:

答案 0 :(得分:1)

您无法在Windows上更改它,因为Microsoft的控件不支持。如果你真的需要,我建议创建2个不同的控件并显示/隐藏合适的控件。

答案 1 :(得分:0)

仅限Windows的解决方案,可能会有用:

void Sample::OnBUTTONClick( wxCommandEvent& event )
{
#if defined(__WXMSW__)
    HWND hWnd = (HWND)m_Text->GetHandle();
    SendMessage(hWnd, EM_SETPASSWORDCHAR, 0x25cf, 0); // 0x25cf is ● character
    m_Text->Update();
#endif
}