【发布时间】:2013-12-08 03:25:39
【问题描述】:
我有一个项目有一个带密码模式的文本框。但这必须在它有焦点时显示,当它杀死他的焦点时隐藏角色。
这是我的源代码。 m_editBox 是 IDC_EDIT1 的控制变量。
void CEditBoxTestDlg::OnEnSetfocusEdit1()
{
//m_editBox.SetPasswordChar(0);
}
void CEditBoxTestDlg::OnEnKillfocusEdit1()
{
//m_editBox.SetPasswordChar('*'); //1
m_editBox.SendNotifyMessage(EM_SETPASSWORDCHAR, (WPARAM) '*', NULL); //2
}
但是 OnEnKillfocusEdit() 不能清楚地工作。我调试了它并检查了进入这个模块。
我该如何解决这个问题。谢谢。
【问题讨论】:
-
不知道为什么不行,试试
m_editBox.PostMessage(EM_SETPASSWORDCHAR, (WPARAM) '*', NULL); -
使用 Spy++ 跟踪 EM_SETPASSWORDCHAR 消息的去向。这应该告诉你谁在处理它。此外,我会尝试“发布”消息,而不是尝试“发送”它。
-
我用 PostMessage(...) 做到了,但它也不起作用。