请教基于单文档的对话框密码登录程序 为什么没有出现对话框就跳转了
照了《零基础学visual C++》 谢贤芳古万荣写的书做的。
感觉这本书讲的比较乱,不是一步流程一步流程怎么进行
讲下去的,其实买了好几本visual C++的书,都差不多。
没有有条有理进行的。基本都是这样半吊子。
买书就是为了学习,大部分把你当熟手说,总是跳过最关键的一点。
前后买了,案例解说Visual C++6.0 Visual C++串口通信技术详解
由浅入深学Visual C++ Visual C++开发实战1200例。
基本没有满意的,有些内容不能说不好,大部分不负责任。
前几天为了一个单片机和PC串口通讯,为了在静态图片动态修改图片搞了好几天
最后看了黄维通的视频终于明白需要在CLASS VIEW中添加一个函数才解决的,
《案例解说Visual C++6.0》
《Visual C++串口通信技术详解》把这关键部分跳过去,火的。
由浅入深学Visual C++视频讲解语调慢的要死,听听人都要晕过去了,
要命的是到中间声音都没了。
庞小红的c plus plus 面向对象程序设计 讲得到是非常具体明了、
为什么没有出现对话框就跳转到单文档页面了?谢谢!
// LoginDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Ch11Demo1.h"
#include "LoginDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg dialog
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoginDlg)
m_password = _T("");
m_user = _T("");
//}}AFX_DATA_INIT
login_num=0;
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginDlg)
DDX_Text(pDX, IDC_PASSWORD, m_password);
DDV_MaxChars(pDX, m_password, 12);
DDX_Text(pDX, IDC_USER, m_user);
DDV_MaxChars(pDX, m_user, 12);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
//{{AFX_MSG_MAP(CLoginDlg)
ON_BN_CLICKED(IDC_CHECK, OnCheck)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg message handlers
BOOL CLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLoginDlg::OnCheck()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
UpdateData(true);
if(m_user=="gaoshou"&&m_password=="790904")//通过验证
{
AfxMessageBox("登录成功,进入程序!");
}
else if(login_num<3)//登录失败次数少于3次
{
AfxMessageBox("用户名和密码设置错误,请重新设置!");
login_num++;
m_user="";
m_password="";
UpdateData(false);
return;
}
else
{
AfxMessageBox("用户名和密码设置错误,无法进入程序!");
AfxGetMainWnd()->PostMessage(WM_QUIT);//退出主程序
EndDialog(IDCANCEL);//退出对话框,返回值为IDCANCEL
}
//CDialog::OnOK();//退出对话框,返回值为IDOK
}
void CLoginDlg::OnCancel()
{
// TODO: Add extra cleanup here
// TODO: Add extra cleanup here
AfxMessageBox("用户名和密码设置错误,无法进入程序!");
AfxGetMainWnd()->PostMessage(WM_QUIT);//退出主程序
CDialog::OnCancel();//退出对话框,返回值为IDCANCEL
}
[解决办法]
InitInstance函数里添加
[解决办法]
可以找书相对应的代码下载,网上应该可以搜到的。书上例子有些只讲主要部分