永发信息网

用MFC做员工登陆界面,需要账号和密码,跟着书上做的,为什么总是有m_ok是未声明的

答案:2  悬赏:0  手机版
解决时间 2021-02-15 06:49
  • 提问者网友:记得曾经
  • 2021-02-14 23:29
BOOL CSuperMarketsView::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_LBUTTONDOWN)
{
CRect rect,rc;
m_OK.GetWindowRect(&rect);
m_Cancel.GetWindowRect(&rc);
CPoint point;
GetCursorPos(&point);
if(rect.PtInRect(point))
{
UpdateData(TRUE);
if(m_WorkID.IsEmpty()||m_PassWord.IsEmpty())
{
MessageBox("用户名或密码不能为空");
return FALSE;
}
m_times++;
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
CString sql;
sql.Format("select*from worker where WorkerID='%s'and PWD='%s'",m_WorkID,m_PassWord);
m_AdoConn.m_pRecordset=m_AdoConn.GetRecordSet((_bstr_t)sql);
if(!m_AdoConn.m_pRecordset->adoEOF)
{
CString str;
str=(char*)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("Permissions");
m_type=atoi(str);
CDialog::OnOK;
m_AdoConn.ExitConnect();
}
else
{
if(m_times==3)
{
MessageBox("密码不正确已达3次,系统将自动退出!");
CDialog::OnCancel();
m_Adoconn.ExitConnect();
}
else
{
CString str;
str.Format("用户名或密码不正确,您还可以输入%d次!",3-m_times);
MessafeBox(str);
m_WorkID="";
UpdateDate(FALSE);
}
}
}
if(rc.PtInRect(point))
{
CDialog::OnCancel();
}
}
return CListView::PreTranslateMessage(pMsg);
}
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-02-15 00:28
我看了一下,你这个m_ok是和界面上的OK按钮绑定的。

这是一个DDX变量,就是和控件绑定的变量,从而可以用变量来控制控件

你需要为那个按钮设置一下变量,具体设置的方法和Visual Studio的版本有关系
全部回答
  • 1楼网友:罪歌
  • 2021-02-15 00:58
OnOK后面加一个括号呗 就是OnOK(); 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯