【问题标题】:Get back Bold Bullet that is displayed when CEdit with ES_PASSWORD MFC取回使用 ES_PASSWORD MFC 进行 CEdit 时显示的粗体项目符号
【发布时间】:2016-12-28 03:05:53
【问题描述】:

如何恢复使用 ES_PASSWORD 创建 CEdit 时显示的默认 bold bullet (ES_PASSWORD)来自资源。

我尝试过的:

void CDialogMain::OnBnClickedCheckShowPwd()
{
    CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PASSWORD);
    if (m_CheckShowPwd.GetState() & BST_CHECKED)
    {
        pEdit->SetPasswordChar(0);
        ASSERT(!(pEdit->GetStyle() & ES_PASSWORD));
    }
    else{
        pEdit->SetPasswordChar(L'*');
        ASSERT((pEdit->GetStyle() & ES_PASSWORD));
    }
    pEdit->Invalidate(FALSE);
}

我想更改 CEdit 控件的 ES_PASSWORD 样式。下面的代码在运行时更改它,但 CEdit 的视觉外观从 Bold Bullet 更改为 普通丑陋的外观 星号

如何找回那些漂亮的 粗体符号而不是普通的星号

【问题讨论】:

  • 通过谷歌搜索和阅读,我发现有一条 EM_SETPASSWORDCHAR 消息 (msdn.microsoft.com/en-us/library/windows/desktop/…),显然可以让您设置所需的任何字符。所以如果没有别的,你可以强行将它设置为你想要的子弹。

标签: c++ mfc


【解决方案1】:

要将密码字符设置回项目符号,请使用:

pEdit->SetPasswordChar(9679);

或十六进制:

pEdit->SetPasswordChar(0x25CF);

【讨论】:

  • 或者只是pEdit->SetPasswordChar(L'●'),同样GetPasswordChar返回前一个字符,你可以在程序启动时存储那个字符...
  • @BarmakShemirani 没错。我使用数字是因为我想避免在 OP 的源代码中放置特殊字符。
  • 谢谢大家
猜你喜欢
  • 1970-01-01
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多