2016-12-27 55 views
2

如何回到默認大膽的子彈所顯示粗體子彈ES_PASSWORD)當從資源創建CEdit的ES_PASSWORD時顯示。找回CEdit的時候用ES_PASSWORD MFC

我曾嘗試:

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的視覺效果是從大膽子彈改爲難看尋找星號

如何找回那些美麗大膽子彈代替平原星號

+0

隨着一點點谷歌搜索和閱讀我fo並有一個EM_SETPASSWORDCHAR消息(https://msdn.microsoft.com/en-us/library/windows/desktop/bb761653(v=vs.85).aspx),它顯然可以讓你設置任何你想要的字符。所以如果沒有別的,你可以強行將它設置爲你想要的子彈。 – TheUndeadFish

回答

2

要設置密碼的字符回子彈使用:

pEdit->SetPasswordChar(9679); 

或十六進制:

pEdit->SetPasswordChar(0x25CF); 
+2

或只是'pEdit-> SetPasswordChar(L'●')',同樣'GetPasswordChar'返回前一個字符,當程序啓動時可以存儲該字符... –

+1

@BarmakShemirani沒錯。我使用數字是因爲我想避免在OP的源代碼中放置特殊字符。 – 2016-12-28 02:08:50

+0

謝謝大家 – Angelica