Para validar senhas em C++ você deve usar o componente Edit Control com sua propriedade Password alterada para True, deste modo o controle altera a visualização dos caracteres comuns para caracteres “*”.
MessageBox
Envia mensagens para o usuário através da API do Windows.
Visual Studio
Para criar um programa que valida senhas siga os seguintes passos:
- Crie um novo projeto C++ MFC Application Dialog Based.
- Coloque os componentes: Static Text, Edit Control e um Button no dialogo, use a figura abaixo para o design:
- Crie uma variável chamada m_senha para o Edit Control.
- Mude a propriedade Password do Edit Control para True.
- Crie um evento para o clique do botão.
- Use o código abaixo e complete seu código gerado automaticamente.
Exemplo:
Neste exemplo criamos um campo de entrada de senha, o validamos e exibimos mensagens para o usuário.
C++
// Código gerado automaticamente // senhacppDlg.cpp : implementation file // #include "stdafx.h" #include "senhacpp.h" #include "senhacppDlg.h" #include "afxdialogex.h" #include <Windows.h> #ifdef _DEBUG #define new DEBUG_NEW #endif CsenhacppDlg::CsenhacppDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CsenhacppDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CsenhacppDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT1, m_senha); } BEGIN_MESSAGE_MAP(CsenhacppDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, &CsenhacppDlg::OnBnClickedButton1) END_MESSAGE_MAP() BOOL CsenhacppDlg::OnInitDialog() { CDialogEx::OnInitDialog(); SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); return TRUE; } void CsenhacppDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); } } HCURSOR CsenhacppDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } // Desenvolvimento Aberto // nosso código começa aqui // Verifica senha static bool verificaSenha(CString psenha) { bool correto = true; // Retorna senha de alguma fonte CString rsenha = L"daaberto"; // Verifica tamanho if (psenha.GetLength() != rsenha.GetLength()) { correto = false; } else { // Verifica senha if (psenha != rsenha) { correto = false; } } return correto; } // Cria menssagens int menssagem(bool correto) { LPCWSTR msg; if (correto) { msg = L"A Senha está correta"; } else { msg = L"A Senha está incorreta"; } int msgboxID = MessageBox( NULL, msg, (LPCWSTR)L"Menssagem", MB_ICONWARNING | MB_OK | MB_DEFBUTTON2 ); switch (msgboxID) { case IDOK: break; } return msgboxID; } // Evento do botão void CsenhacppDlg::OnBnClickedButton1() { // Exibe menssagem CString psenha; m_senha.GetWindowTextW(psenha); if (verificaSenha(psenha)) { menssagem(true); } else { menssagem(false); } }