大家好!谁能帮我看看这一段代码该怎样看,结果是什麽,谢谢

peter2001 2003-12-27 04:19:58
1段
#if !defined(AFX_ZC1_H__AE6168E0_29B0_11D5_A14C_123456006778__INCLUDED_)
#define AFX_ZC1_H__AE6168E0_29B0_11D5_A14C_123456006778__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// ZC1.h : header file
//
#include "ZC2.h"

/////////////////////////////////////////////////////////////////////////////
// ZC1 dialog

class ZC1 : public CDialog
{
// Construction
public:
CString WN;//ADD——DEL的密码
CString RUNZC();
ZC2 zc2;
int name_n;
CStringArray name;//名子
CStringArray mm;//密码
ZC1(CString slml,CWnd* pParent = NULL); // standard constructor
//ZCS文件位置
// Dialog Data
//{{AFX_DATA(ZC1)
enum { IDD = IDD_DIALOGZC1 };
CEdit m_1;
//}}AFX_DATA


// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(ZC1)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(ZC1)
afx_msg void OnButton1();
virtual void OnOK();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ZC1_H__AE6168E0_29B0_11D5_A14C_123456006778__INCLUDED_)

------------------------------------------------------------------------
// ZC1.cpp : implementation file
//

#include "stdafx.h"
#include "BYQ.h"
#include "zc1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ZC1 dialog
ZC1::ZC1(CString slml,CWnd* pParent /*=NULL*/)
: CDialog(ZC1::IDD, pParent)
{ zc2.pname=&name;
zc2.pmm=&mm;
zc2.slml=slml;
zc2.SL(0);
zc2.ADD_DEL=FALSE;
WN.Empty();
int i;
char tc[1];
i=48;
tc[0]=char(i);
WN+=tc;
i=51;
tc[0]=char(i);
WN+=tc;
i=55;
tc[0]=char(i);
WN+=tc;
i=56;
tc[0]=char(i);
WN+=tc;
i=57;
tc[0]=char(i);
WN+=tc;
i=54;
tc[0]=char(i);
WN+=tc;
i=49;
tc[0]=char(i);
WN+=tc;
i=49;
tc[0]=char(i);
WN+=tc;
i=50;
tc[0]=char(i);
WN+=tc;
i=57;
tc[0]=char(i);
WN+=tc;
i=48;
tc[0]=char(i);
WN+=tc;
//{{AFX_DATA_INIT(ZC1)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}


void ZC1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(ZC1)
DDX_Control(pDX, IDC_EDIT1, m_1);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(ZC1, CDialog)
//{{AFX_MSG_MAP(ZC1)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ZC1 message handlers

void ZC1::OnButton1()
{CString s;
m_1.GetWindowText(s);
if(s==WN) zc2.ADD_DEL=TRUE;
zc2.DoModal();
}

void ZC1::OnOK()
{CString s;
m_1.GetWindowText(s);
name_n=zc2.PAN(s);
if(name_n==-1)return;//没有对应密码
else
{ s="您好,";
s+=name.GetAt(name_n);
AfxMessageBox(s,MB_OK);
CDialog::OnOK();
}
}

CString ZC1::RUNZC()//若密码输对,返回名子
{if(DoModal()==IDOK)
return(name.GetAt(name_n));
else
return(_T(""));
}
...全文
39 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
summer6074 2003-12-27
  • 打赏
  • 举报
回复
啊!这不就是个对话框吗?呵呵,楼主啊,对话框还是先找到几个主要函数吧
这里呢有afx_msg void OnAdd();
afx_msg void OnDel();
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeList1();
virtual void OnOK();
afx_msg void OnMod();
几个函数是比较重要的,从字面上看有一个初始化函数 OnInitDialog();还有一个下拉列表框afx_msg void OnSelchangeList1();记住一点,这个对话框的初始化都是从 OnInitDialog()开始的,其他的部分请打开msdn对照着on_command宏来观察消息的流向,这个就会很清楚了.


peter2001 2003-12-27
  • 打赏
  • 举报
回复
第二段:
#if !defined(AFX_ZC2_H__AE6168E1_29B0_11D5_A14C_123456006778__INCLUDED_)
#define AFX_ZC2_H__AE6168E1_29B0_11D5_A14C_123456006778__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// ZC2.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// ZC2 dialog
class ZC2 : public CDialog
{
// Construction
public:
BOOL ADD_DEL;
void JM(CArchive &ar,CString jms);
CString slml;
int PAN(CString pans);
int name_n;
BOOL SL(int n);
CStringArray * pname;
CStringArray * pmm;
ZC2(CWnd* pParent = NULL); // standard constructor

// Dialog Data
//{{AFX_DATA(ZC2)
enum { IDD = IDD_DIALOGZC2 };
CButton m_del;
CButton m_add;
CListBox m_l;
CEdit m_name;
CEdit m_new;
CEdit m_old;
//}}AFX_DATA


// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(ZC2)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(ZC2)
afx_msg void OnAdd();
afx_msg void OnDel();
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeList1();
virtual void OnOK();
afx_msg void OnMod();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ZC2_H__AE6168E1_29B0_11D5_A14C_123456006778__INCLUDED_)


// ZC2.cpp : implementation file
//

#include "stdafx.h"
#include "BYQ.h"
#include "ZC2.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ZC2 dialog


ZC2::ZC2(CWnd* pParent /*=NULL*/)
: CDialog(ZC2::IDD, pParent)
{
//{{AFX_DATA_INIT(ZC2)
//}}AFX_DATA_INIT
}


void ZC2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(ZC2)
DDX_Control(pDX, IDC_DEL, m_del);
DDX_Control(pDX, IDC_ADD, m_add);
DDX_Control(pDX, IDC_LIST1, m_l);
DDX_Control(pDX, IDC_EDIT3, m_name);
DDX_Control(pDX, IDC_EDIT2, m_new);
DDX_Control(pDX, IDC_EDIT1, m_old);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(ZC2, CDialog)
//{{AFX_MSG_MAP(ZC2)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DEL, OnDel)
ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
ON_BN_CLICKED(IDC_MOD, OnMod)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ZC2 message handlers

void ZC2::OnAdd()
{CString s1,s2;
m_old.GetWindowText(s2);
m_name.GetWindowText(s1);
if(PAN(s2)!=-1)return;
for(int i=0;i<pname->GetSize();i++)
{if(s1==pname->GetAt(i)) return;
}
pmm->Add(s2);
pname->Add(s1);
m_l.InsertString(m_l.GetCount(),s1);
name_n= m_l.GetCount()-1;
m_l.SetCurSel(name_n);
}

void ZC2::OnDel()
{int i=m_l.GetCurSel( );
m_l.DeleteString(i);
pname->RemoveAt(i);
pmm->RemoveAt(i);
if(name_n>=pname->GetSize())name_n--;
m_name.SetWindowText(pname->GetAt(name_n));
m_l.SetCurSel(name_n );
}
void ZC2::OnMod()
{CString s;
m_old.GetWindowText(s);
if(PAN(s)!=name_n)
{s="请先输对旧密码";
AfxMessageBox(s,MB_OK);
}else
{ m_new.GetWindowText(s);
pmm->SetAt(name_n,s);
}
}

BOOL ZC2::OnInitDialog()
{
CDialog::OnInitDialog();

int i;
m_add.EnableWindow(ADD_DEL);
m_del.EnableWindow(ADD_DEL);
if(pname->GetSize()==0);else
for(i=0;i<pname->GetSize();i++)
m_l.InsertString(m_l.GetCount(),pname->GetAt(i));

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

BOOL ZC2::SL(int n)//1:写
{//char tdc[MAX_PATH];
//GetWindowsDirectory(tdc,MAX_PATH);
//CString s(tdc);
CString s;
int i,ii;
if(n)
{CFile cf1(slml,CFile::modeWrite|CFile::modeCreate);
CArchive ar1(&cf1,CArchive::store);
ii=pname->GetSize();
ar1<<ii;
for(i=0;i<ii;i++)
{JM(ar1,pname->GetAt(i));
JM(ar1,pmm->GetAt(i));
}
}
else
{CFile cf1;
if(!cf1.Open(slml,CFile::modeRead))return FALSE;
CArchive ar1(&cf1,CArchive::load);
ar1>>ii;
pname->SetSize(ii);
pmm->SetSize(ii);
for(i=0;i<ii;i++)
{JM(ar1,s);
pname->SetAt(i,s);
JM(ar1,s);
pmm->SetAt(i,s);
}
}
return TRUE;
}

void ZC2::OnSelchangeList1()
{
name_n=m_l.GetCurSel( ) ;
m_name.SetWindowText(pname->GetAt(name_n));

// m_old.SetWindowText(pmm->GetAt(i));
}

void ZC2::OnOK()
{
SL(1);
CDialog::OnOK();
}


int ZC2::PAN(CString pans)//若找到,返回号
{int i,ii; //若找不到,返回-1
ii=pname->GetSize();
if(ii>0)
{for(i=0;i<ii;i++)
if(pans==pmm->GetAt(i))break;
}
if(i>=ii)
return(-1);//没有对应密码
else
return(i);
}

void ZC2::JM(CArchive & ar, CString jms)
{int n,i,ii;
ii=jms.GetLength();
if (ar.IsStoring())
{ar<<ii;
for(i=0;i<ii;i++)
{n=57*int(jms[i]);
ar<<n;
}
}
else
{ar>>ii;
if(ii<=0)return;
jms.Empty( );
for(i=0;i<ii;i++)
{ar>>n;
jms+=" ";
jms.SetAt(i,char(n/57));
}
}

}
谢谢大家!其余代码略

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧