电话管理系统

ClfnoDlg:电话用户信息的输入添加.

ClputeDlg:用户信息的添加输入等功能实现.

CLoginDlg:登陆对话框的设置.

CPowerDlg:登陆用户的用户名和密码的功能实现.

CQQApp: 加载初始化的登陆对话框.

CQQDlg:主对话框类,加载初始化的

这些功能.

slnfosUser:定义的结构体.

3设计:

   3.1详细设计

     BOOL CQQApp::InitInstance()//初始化程序配置用户文件

{

      m_Back =theApp.GetProfileInt("Settings","BackColor",RGB(0,0,0));

      m_Text =theApp.GetProfileInt("Settings","TextColor",RGB(192,192,192));

      theApp.SetDialogBkColor(m_Back,m_Text);

      CLoginDlg ldlg;

      if(IDCANCEL==ldlg.DoModal())

           return FALSE;

      CQQDlg dlg;

      int nResponse = dlg.DoModal();

      if (nResponse == IDOK)

      {

      }

      else if (nResponse == IDCANCEL)

      {

      }

      return FALSE;

}

BOOLCQQDlg::OnInitDialog()//主版面的设计和初始化

{

      CDialog::OnInitDialog();

    CString str = theApp.m_user.szName;

      str += "电话管理系统";

      SetWindowText(str);

      GetDlgItem(IDC_MESS)->EnableWindow(theApp.m_user.nPower);

                 SetIcon(m_hIcon, TRUE);                // Set big icon

      SetIcon(m_hIcon, FALSE);         // Set small icon   

      return TRUE;  // return TRUE  unless you set the focus to a control

}

voidCQQDlg::OnPaint()

{

      if (IsIconic())

      {

           CPaintDC dc(this); // device contextfor painting

 

           SendMessage(WM_ICONERASEBKGND,(WPARAM) dc.GetSafeHdc(), 0);

 

           int cxIcon =GetSystemMetrics(SM_CXICON);

           int cyIcon =GetSystemMetrics(SM_CYICON);

           CRect rect;

           GetClientRect(&rect);

           int x = (rect.Width() - cxIcon + 1) /2;

           int y = (rect.Height() - cyIcon + 1)/ 2;

           // Draw the icon

           dc.DrawIcon(x, y, m_hIcon);

      }

      else

      {

           CDialog::OnPaint();

      }

}

HCURSORCQQDlg::OnQueryDragIcon()

{

      return (HCURSOR) m_hIcon;

}

 

voidCQQDlg::OnExit() //退出功能

{

EndDialog(IDCANCEL); 

}

voidCQQDlg::OnReload() //重新登录

{

      ShowWindow(SW_HIDE);

      CLoginDlg dlg;

      if(IDOK==dlg.DoModal())

         OnCancel();

      else

      {

      CString str = theApp.m_user.szName;

      str += "电话管理系统";

      SetWindowText(str);

      GetDlgItem(IDC_MESS)->EnableWindow(theApp.m_user.nPower);

      ShowWindow(SW_SHOW);

      }

}

 

voidCQQDlg::OnMess() //用户信息密码等管理对话框的弹出

{

      ShowWindow(SW_HIDE);

      CPowerDlg dlg;

      dlg.DoModal();

      ShowWindow(SW_SHOW);

     

}

voidCQQDlg::OnInfo()//用户电话信息等管理对话框的弹出

{

    ShowWindow(SW_HIDE);

      CIfnoDlg dlg;

      dlg.DoModal();

      ShowWindow(SW_SHOW);

}

voidCQQDlg::OnBackcol() //背景颜色的选择

{

   CColorDialog dcl;

   if(IDCANCEL == dcl.DoModal())

        return;

   theApp.m_Back = dcl.GetColor();

   theApp.SetDialogBkColor(theApp.m_Back,theApp.m_Text);

   Invalidate();

}

voidCQQDlg::OnTextcol() //文字颜色的选择

{

      CColorDialog dcl;

   if(IDCANCEL == dcl.DoModal())

        return;

   theApp.m_Text = dcl.GetColor();

  theApp.SetDialogBkColor(theApp.m_Back,theApp.m_Text);

   Invalidate();

}

voidCQQDlg::OnDestroy() //退出的必经摧毁

{

      CDialog::OnDestroy();

      theApp.WriteProfileInt("Settings","TextColor",theApp.m_Text);

         theApp.WriteProfileInt("Settings","BackColor",theApp.m_Back);

}

voidCPowerDlg::OnAdd() //用户信息密码等的添加

{

sUser u;

GetDlgItemText(IDC_NAME,u.szName,sizeof(u.szName));

strlwr(u.szName);

CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST);

int i = 0,nCount =plist ->GetItemCount();

while(i<nCount)

{

    if(plist ->GetItemText(i,0) == u.szName)

      {

      AfxMessageBox("用户名已存在!");

      return;

      }

      ++i;

}

    plist ->InsertItem(nCount,u.szName);

   GetDlgItemText(IDC_PASS,u.szPass,sizeof(u.szPass));   

    plist ->SetItemText(nCount,1,u.szPass);

    CComboBox* pComb =(CComboBox*)GetDlgItem(IDC_POWER);

    int nSel = pComb ->GetCurSel();

      plist->SetItemText(nCount,2,nSel?"高级":"普通");

}

 

voidCPowerDlg::OnDel() //删除

{

    CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST);

//    int nSel = plist->GetSelectionMark();

      POSITION pos =plist->GetFirstSelectedItemPosition();

      int nSel =plist->GetNextSelectedItem(pos);

      //if(plist->GetSelectCount<1)

      if(nSel<0)

      {

       AfxMessageBox("请选中删除项!");

       return;

      }

      //int nSel = plist->GetSelectionMark();

      if(plist ->GetItemText(nSel,0) !="ykabps"&&plist ->GetItemText(nSel,0) =="672645698")

           return;

      CString str;

      str.Format("确认要删除%d项吗?",plist->GetItemText(nSel,0));

      if(IDYES==AfxMessageBox(str,MB_YESNO))

      plist ->DeleteItem(nSel);

     

}

 

voidCPowerDlg::OnFex()//修改

{

      CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST);

      POSITION pos =plist->GetFirstSelectedItemPosition();

      int nSel = plist->GetNextSelectedItem(pos);

      if(nSel<0)

      {

       AfxMessageBox("请选中一项修改!");

       return;

      }

    char sPass[20];

      GetDlgItemText(IDC_PASS,sPass,sizeof(sPass));

      plist ->SetItemText(nSel,1,sPass);

    CComboBox* pComb =(CComboBox*)GetDlgItem(IDC_POWER);

      //int nPower = pComb->GetCurSel();

      CString str;

      pComb->GetWindowText(str);

      if(plist->GetItemText(nSel,0) !="ykabps"&&plist->GetItemText(nSel,0) !="672645698")

      plist->SetItemText(nSel,2,str);//nPower?"高级":"普通");

}

voidCPowerDlg::ReadList(CListCtrl *plist)//读出文件

{

     CFile file;

       if(!file.Open("./users.dat",CFile::modeRead|CFile::shareDenyNone))

       return;

      plist ->DeleteAllItems();

      sUser u;

    int i = 0;

      while(file.Read(&u,sizeof(u)) ==sizeof(u))

      {

      plist ->InsertItem(i,u.szName);

      plist ->SetItemText(i,1,u.szPass);

      plist ->SetItemText(i,2,u.nPower?"高级":"普通");

      ++i;

      }

      file.Close();

}

BOOLCPowerDlg::OnInitDialog() //初始化

{

      CDialog::OnInitDialog();

      CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST);

      plist ->InsertColumn(0,"账号",0,100);

      plist ->InsertColumn(1,"密码",0,100);

      plist ->InsertColumn(2,"权限",0,100);

    ReadList(plist);

      CComboBox* pComb =(CComboBox*)GetDlgItem(IDC_POWER);

      pComb ->AddString("普通");

      pComb ->AddString("高级");

      pComb ->SetCurSel(0);

      return TRUE;  // return TRUE unless you set the focus to acontrol

                 }

voidCPowerDlg::OnDestroy() //退出保存文件

{

      CDialog::OnDestroy();

      CFile file;

      if(!file.Open("./users.dat",CFile::modeCreate|CFile::modeWrite))

      {

      AfxMessageBox("保存文件失败!");

      return;

      }

      CListCtrl* plist=(CListCtrl*)GetDlgItem(IDC_LIST);

      int i = 0,nCount = plist->GetItemCount();

      sUser u;

      while(i<nCount)

    {

        plist ->GetItemText(i,0,u.szName,sizeof(u.szName));

        plist ->GetItemText(i,1,u.szPass,sizeof(u.szPass));

        u.nPower = plist ->GetItemText(i,2)=="高级";

        file.Write(&u,sizeof(u));

           ++i;

      }

           file.Close();

}

BOOLCIfnoDlg::OnInitDialog() //电话信息输入

{

      CDialog::OnInitDialog();

      m_list.SubclassDlgItem(IDC_LIST1,this);

      m_list.InsertColumn(0,"姓名",0,160);

      m_list.InsertColumn(1,"地址",0,160);

      m_list.InsertColumn(2,"号码",0,160);

      return TRUE; 

}

voidCIfnoDlg::OnAdd() //电话信息的添加

{

      CIputeDlg dlog;

      dlog.m_pifnoDlg = this;

      dlog.DoModal();

}

voidCIfnoDlg::OnDel() //电话信息删除

{

       CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST1);

      POSITION pos =plist->GetFirstSelectedItemPosition();

      int nSel =plist->GetNextSelectedItem(pos);

      if(nSel<0)

      {

       AfxMessageBox("请选中删除项!");

       return;

      }

 

      CString str;

      str.Format("确认要删除 %s 项吗?",plist->GetItemText(nSel,0));

      if(IDYES==AfxMessageBox(str,MB_YESNO))

      plist ->DeleteItem(nSel);

     

}

voidCIfnoDlg::OnSave() //保存电话信息进入一个Txt文件

{

    LPCSTR szFilter = "信息 (*.ifo)|*.ifo|所有文件(*.*)|*.*||";

      CFileDialogdlg(FALSE,"ifo","",OFN_OVERWRITEPROMPT,szFilter);

      if(IDCANCEL == dlg.DoModal())

           return;

      CString szfile = dlg.GetPathName();

      CFile file;

      if(!file.Open(szfile,CFile::modeCreate|CFile::modeWrite))

      {

      AfxMessageBox("Save Defeat!");

      return;

      }

      int i = 0,nCount = m_list.GetItemCount();

      sInfo info;

      while(i<nCount)

      {

                  m_list.GetItemText(i,0,info.sNUM,sizeof(info.sNUM));

           m_list.GetItemText(i,1,info.sName,sizeof(info.sName));

                         info.fSala =(float)atoi(m_list.GetItemText(i,2));

           file.Write(&info,sizeof(info));

           ++i;

      }

}

 

voidCIfnoDlg::OnOpen()//打开电话信息进入一个Txt文件

{

   LPCSTR szFilter = "信息 (*.ifo)|*.ifo|所有文件(*.*)|*.*||";

      CFileDialogdlg(TRUE,"ifo","",OFN_HIDEREADONLY,szFilter);

      if(IDCANCEL == dlg.DoModal())

           return;

      CString szfile = dlg.GetPathName();

      CFile file;

      if(!file.Open(szfile,CFile::modeRead|CFile::shareDenyNone))

      {

      AfxMessageBox("Open Defeat!");

      return;

      }

      //int i = 0,nCount =m_list.GetItemCount();

      m_list.DeleteAllItems();

      int i = 0;

      sInfo info;

      CString sala;

      while(file.Read(&info,sizeof(info)) ==sizeof(info))

      {

        m_list.InsertItem(i,info.sNUM);

        m_list.SetItemText(i,1,info.sName);

        //m_list.SetItemText(i,2,info.sBirth);

        //m_list.SetItemText(i,3,info.sDept);

      sala.Format("%0.1f",info.fSala);

        m_list.SetItemText(i,2,sala);

 

      }

}

 

voidCIfnoDlg::OnFox() //修改电话信息

{

     

CListCtrl*plist=(CListCtrl*)GetDlgItem(IDC_LIST1);

     POSITIONpos = plist->GetFirstSelectedItemPosition();

     intnSel = plist->GetNextSelectedItem(pos);

     if(nSel<0)

     {

      AfxMessageBox("请选中一项修改!");

      return;

     }

     CIputeDlgdlog;

      dlog.m_pifnoDlg = this;

     dlog.DoModal();  

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值