1.新建一个多文档程序BusSim,在资源中新建登录DIALOG,其ID为IDD_LOGIN,其界面如下图所示:
用户名编辑框设置其ID为IDC_USERNAME,密码框,即新建编辑框控件,在属性中将Password由false修改为true,设置其ID为IDC_PASSWORD。
登录按钮的ID为IDC_LOGIN,注册按钮的ID为:IDC_LOGIN_REGISTER
再新建注册DIALOG,其ID为IDD_REGISTER,其界面如下图所示:
2.选择登陆界面给该对话框添加类CLogin
再给用户名和密码的编辑框添加变量
选中对话框右击鼠标选择新建类向导,类向导中选择成员变量那一栏,然后选择IDC_USERNAME,IDC_PASSWORD分别添加变量value->CString->m_n_Username,value->CString->m_n_Password。
具体添加过程如下图所示:
3.给登录按钮添加响应事件,有两种方法:
a.双击登录按钮即可
b.选中登录按钮右击鼠标选择添加事件处理程序即可
4.登陆界面实现代码:
Login.h
#pragma once
#include "afxwin.h"
#include "ToString.h"
// CLogin 对话框
class CLogin : public CDialogEx
{
DECLARE_DYNAMIC(CLogin)
public:
CLogin(CWnd* pParent = NULL); // 标准构造函数
virtual ~CLogin();
// 对话框数据
enum { IDD = IDD_LOGIN };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
ToString tostr;
CEdit m_username;
CString m_n_Username;
CEdit m_n_password;
CString m_n_Password;
afx_msg void OnBnClickedLogin();
afx_msg void OnBnClickedLoginRegister();
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedBtnModify();
};
Login.cpp : 实现文件
//
#include "stdafx.h"
#include "BusSim.h"
#include "Login.h"
#include "Register.h"
#include "afxdialogex.h"
#include "Mysql.h"
#include "ToString.h"//自己设置的字符串转换类
#include "SetDefine.h"
// CLogin 对话框
IMPLEMENT_DYNAMIC(CLogin, CDialogEx)
CLogin::CLogin(CWnd* pParent /*=NULL*/)
: CDialogEx(CLogin::IDD, pParent)
, m_n_Username(_T(""))
, m_n_Password(_T(""))
{
}
CLogin::~CLogin()
{
}
void CLogin::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_USERNAME, m_username);
DDX_Text(pDX, IDC_USERNAME, m_n_Username);
DDX_Control(pDX, IDC_PASSWORD, m_n_password);
DDX_Text(pDX, IDC_PASSWORD, m_n_Password);
}
BEGIN_MESSAGE_MAP(CLogin, CDialogEx)
ON_BN_CLICKED(IDC_LOGIN, &CLogin::OnBnClickedLogin)
ON_BN_CLICKED(IDC_LOGIN_REGISTER, &CLogin::OnBnClickedLoginRegister)
ON_BN_CLICKED(IDCANCEL, &CLogin::OnBnClickedCancel)
ON_BN_CLICKED(IDC_BTN_MODIFY, &CLogin::OnBnClickedBtnModify)
END_MESSAGE_MAP()
// CLogin 消息处理程序
void CLogin::OnBnClickedLogin()
{
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
UpdateData();
GetDlgItem(IDC_USERNAME)->GetWindowText(m_n_Username);
GetDlgItem(IDC_PASSWORD)->GetWindowText(m_n_Password);
if(m_n_Username.IsEmpty()||m_n_Password.IsEmpty())
{
MessageBox(_T("用户名或密码不能为空!"),_T("用户登录信息"));
//m_n_Username.Empty(); //清空编辑框
// m_n_Password.Empty(); //清空编辑框
UpdateData(FALSE);
return;
}
char *sql = tostr.tostring(m_n_Username);//字符串类型转换
char sqlstr[1005] = "select Password from tb_register where user_name =\"";
strcat(sqlstr,sql);
strcat(sqlstr,"\"");
Mysql *vsmysql = new Mysql();
char *Msg="";