MFC程式設計(二)

calong發表於2020-10-23
  • 使用類:
    • Cwnd:元件基類
    • CEdit:編輯框
    • CString:字串
  • 使用函式:
    • CWnd::SetWindowText(<String>):設定視窗標題文字
    • CEdit::SetPasswordChar(char):設定密碼框顯示字元
    • CEdit::SetFocus():設定編輯框為當前焦點
  • 使用事件:
    • EN_SETFOCUS:編輯框獲取焦點事件

初始化一個CString變數用於儲存使用者名稱和密碼

class CDemoDlg : public CDialog
{
// Construction
public:
    CDemoDlg(CWnd* pParent = NULL);    // standard constructor
    CString users[3][2];
    ...
}
CDemoDlg::CDemoDlg(CWnd* pParent /*=NULL*/) : CDialog(CDemoDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CDemoDlg)
    v_username = _T("");
    v_password = _T("");
    //}}AFX_DATA_INIT
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    this->users[0][0] = "test";
    this->users[0][1] = "test";
    this->users[1][0] = "admin";
    this->users[1][1] = "123456";
    this->users[2][0] = "calong";
    this->users[2][1] = "calong";
}

當使用者點選確定按鈕判斷使用者名稱和密碼是否輸入正確

void CDemoDlg::OnOK() 
{
    // TODO: Add extra validation here
    UpdateData(true);
    if (v_username.IsEmpty()) {
        MessageBox("使用者名稱不能為空");
        c_username.SetFocus();
    } else if (v_password.IsEmpty()) {
        MessageBox("密碼不能為空");
        c_password.SetFocus();
    } else {
        for (int i = 0; i < 3; i ++) {
            for (int i = 0; i < 3; i ++) {
            if ((v_username == users[i][0]) && (v_password == users[i][1])) {
                MessageBox("歡迎您!");
                CDialog::OnOK();
                break;
            }
            if (i == 2) {
                MessageBox("對不起!您的使用者名稱或密碼有誤!");
            }
        }
    }
}

kpWxZaKosM.png Y4Mzmq4gp2.png

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章