2016-12-27 2 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); 
} 

Я хочу, чтобы изменить стиль ES_PASSWORD из CEdit управления. Ниже код изменяет его во время выполнения, но визуальный вид CEdit изменяется от Смелого пуля в некрасиво ищетзвездочками.

Как получить обратно эти красивыхЖирного пуля вместо простых звездочек

+0

С небольшим количеством поисковых запросов и чтения и есть сообщение 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. –

+0

Спасибо всем – Angelica