1

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

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

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

我读了 wx.chm 它说,

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

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

4

2 回答 2

1

您以后无法在 Windows 上更改它,因为 Microsoft 的控件不支持它。如果您确实需要,我建议创建 2 个不同的控件并显示/隐藏相应的控件。

于 2012-04-19T15:13:48.990 回答
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
}
于 2012-04-19T19:39:59.967 回答