随笔c

匆匆过客 提交于 2019-12-04 07:52:39

弹窗查询

  1. 1.     插入一个dialg,设计界面如图
  1. 2.     新建类,serch,确定,查看类向导
  1. 3.      
  1. 4.     查询内添加代码:

void COdbctView::OnButton4()

{

// TODO: Add your control notification handler code here

search f;

this->UpdateData(true);

if(f.DoModal()==IDOK)

{   CString s="name";

          m_pSet->Close();

          m_pSet->m_strFilter=s+"='"+f.m_value+"'";

          m_pSet->Open();

          this->UpdateData(false);

}

}

  1. 5.     查询运行成功

 

  1. 右击插入dialog,设计如图

 

  1. 2.  新建一个类

 

3. 添加变量

4.

 

5

void COdbctView::OnAdd()

{

         // TODO: Add your control notification handler code here

        

         insert d;

         if(d.DoModal()==IDOK){

                   m_pSet->AddNew();

                   m_pSet->m_name=d.m_name;

                   m_pSet->m_sex =d.m_sex;

                   m_pSet->m_age =d.m_age;

                   m_pSet->Update();

                   m_pSet->Requery();

         }}.

void COdbctView::OnDel()

{

       // TODO: Add your control notification handler code here

       m_pSet->Delete();

       m_pSet->MoveNext();

       if(m_pSet->IsEOF())

       {

              m_pSet->MoveLast();

       }

       if(m_pSet->IsBOF())

       {

              m_pSet->SetFieldNull(NULL);

       }

       m_pSet->Requery();

       this->UpdateData(false);

}

void COdbctView::OnAdj()

{

         // TODO: Add your control notification handler code here

         insert d;

         d.m_name=m_pSet->m_name;

         d.m_sex=m_pSet->m_sex;

         d.m_age=m_pSet->m_age;

         if(d.DoModal()==IDOK)

         {

                   m_pSet->Edit();

                   m_pSet->m_name=d.m_name;

                   m_pSet->m_sex=d.m_sex;

                   m_pSet->m_age=d.m_age;

                   m_pSet->Update();

                   this->UpdateData(false);

         }

}

 

上一条下一条

  1. 添加两个上一条下一条按钮
  2. 添加单机事件

 

3.为两个按钮添加变量分别为m_prebt,m_nextbt

 

  1. 代码:

void COdbctView::OnPre()

{

       // TODO: Add your control notification handler code here

       if (m_pSet->IsBOF())

       {

              m_prebt.EnableWindow(false);     

              return ;

       }

              m_nextbt.EnableWindow(true);    

       m_pSet->MovePrev();

       this->UpdateData(false);

}

 

void COdbctView::OnNext()

{

       // TODO: Add your control notification handler code here

       m_pSet->MoveNext();

       if (m_pSet->IsEOF())

       {

              m_nextbt.EnableWindow(false);

              return ;

       }

       m_prebt.EnableWindow(true);      

 

       this->UpdateData(false);

}

  1. 找到项目

zuyangpu.h右击属性

 

 

 

 

 

 

 

 

 

 

 

 

 

 

客户端

一.创建一个基于对话框的程序,设置如下界面

 

二.为控件添加变量

 

三.Ip地址初始化

      SetDlgItemText(IDC_IPADDRESS1,"127.0.0.1");

 

四.构造函数中设置m_port为7788

 m_port = 7788;

 

四.点击类向导,第一个选项卡,sasa,sasadlg,create,点击新建类

 

 

继续点,生成如下三个函数.

六.Cpp和h中添加头文件

 

七.添加代码

 

void MySocket::OnReceive(int nErrorCode)

{

         // TODO: Add your specialized code here and/or call the base class

         //获取对话框指针

         CSasaApp *pApp=(CSasaApp*)AfxGetApp();

         CSasaDlg *pDlg=(CSasaDlg*)pApp->m_pMainWnd;

         //王编辑框中插入消息

         char *pbuf=new char[4096];

         int ibufsize=4096;

         int ircvd;

         CString strrecvd;

         //接收数据

         ircvd=Receive(pbuf,ibufsize);

         if(ircvd==SOCKET_ERROR){

                   pDlg->MessageBox("SOCKET_ERROR");

         }else{

                   pbuf[ircvd]=NULL;

                   pDlg->m_recmsg+="服务器:";

                   pDlg->m_recmsg+=pbuf;

                   pDlg->m_recmsg+="\r\n";

                   pDlg->RefreshScreen();

         }

         delete pbuf;

         CAsyncSocket::OnReceive(nErrorCode);

}

 

 

 

 

 

void MySocket::OnConnect(int nErrorCode)

{

         // TODO: Add your specialized code here and/or call the base class

         CSasaApp *pApp=(CSasaApp*)AfxGetApp();

         CSasaDlg *pDlg=(CSasaDlg*)pApp->m_pMainWnd;

         int iResult=nErrorCode;

         CString buffer;

         int namelen;

         if(iResult!=0){

                   buffer.Format("连接服务器失败。\r\n");

                   pDlg->m_recmsg+=buffer;

         }else{

                   namelen=sizeof(sockaddr_in);

                  buffer.Format("成功连接到服务器。%s:%d.\r\n",pDlg->m_ipstr,pDlg->m_port);

                   pDlg->m_recmsg+=buffer;

                   pDlg->GetDlgItem(IDC_SEND)->EnableWindow(TRUE);

                   pDlg->GetDlgItem(IDOK)->EnableWindow(TRUE);

         }

         pDlg->RefreshScreen();//刷新窗口

         CAsyncSocket::OnConnect(nErrorCode);

}

 

 

 

 

 

 

 

 

 

 

 

八.右击dlg添加成员函数


九.添加

 

十.在CSasaDlg中添加变量:

右击添加变量

 

 

十一.双击连接按钮,添加连接按钮的消息映射OnConnect()函数

 

void CSasaDlg::OnConnect()

{

         // TODO: Add your control notification handler code here

         if(!AfxSocketInit()){

                   AfxMessageBox("IDP_SOCKETS_INIT_FAILED");

                   return ;

         }

         GetDlgItemText(IDC_IPADDRESS1,m_ipstr);

         m_socket.m_hSocket=INVALID_SOCKET;

         UpdateData(true);

 

         BOOL flag=m_socket.Create();

         if(!flag){

                   AfxMessageBox("SCOKET ERROR");      

                   return ;

         }

         m_socket.Connect(m_ipstr,m_port);

}

 

十二. 双击发送按钮,添加发送按钮的消息映射OnSend ()函数

 

 

void CSasaDlg::OnSend()

{

         // TODO: Add your control notification handler code here

         int ilen;

         int isent;

         UpdateData(TRUE);

         if(m_msg!=""){

                   ilen=m_msg.GetLength();

                   isent=m_socket.Send(LPCTSTR(m_msg),ilen);

                   if(isent==SOCKET_ERROR){

                            MessageBox("连接失败,请重试!");

                   }else{

                            m_recmsg+="客户机:"+m_msg;

                            m_recmsg+="\r\n";

                            UpdateData(FALSE);

                   }

         }

}

 

 

 

 

服务器

  1. 1.     
  2. 2.      设计界面如图:

 

  1. 3.      控件ID

IDC_PORT  添加成员变量UNIT m_port

IDC_sendmsg  添加成员变量CString  m_msg

IDC_msg   添加成员变量CString  m_sendmsg

IDC_listen  IDC_SEND

  1. 4.      查看类向导----ADDCLASS---new

 

  1. 5.       

 

         void MySocket::OnReceive(int nErrorCode)

{

         // TODO: Add your specialized code here and/or call the base class

         CFuwuqiApp* pApp=(CFuwuqiApp*)AfxGetApp();

         CFuwuqiDlg* pDlg=(CFuwuqiDlg*)pApp->m_pMainWnd;

         //王编辑框中插入消息

         char *pbuf=new char[4096];

         int ibufsize=4096;

         int ircvd;

         CString strrecvd;

         ircvd=Receive(pbuf,ibufsize);

         if(ircvd==SOCKET_ERROR){

                   pDlg->MessageBox("SOCKET_ERROR");

         }else{

                   pbuf[ircvd]=NULL;

                   pDlg->m_msg+="客户机:";

                   pDlg->m_msg+=pbuf;

                   pDlg->m_msg+="\r\n";

                   pDlg->RefreshScreen();

         }

         delete pbuf;

         CAsyncSocket::OnReceive(nErrorCode);

}

6.查看类向导----ADDCLASS---new

     

  1. 6.      右击CMyServerSocket,添加成员变量

 

  1. 7.      查看类向导-

 

void CMyServerSocket::OnAccept(int nErrorCode)

{

       // TODO: Add your specialized code here and/or call the base class

       CFuwuqiApp* pApp=(CFuwuqiApp*)AfxGetApp();

       CFuwuqiDlg* pDlg=(CFuwuqiDlg*)pApp->m_pMainWnd;

       //显示连接消息

       pDlg->m_msg="客户机连接到服务器";

       pDlg->m_msg="\r\n";

       pDlg->RefreshScreen();

       pDlg->GetDlgItem(IDC_SEND)->EnableWindow(true);

       pDlg->GetDlgItem(IDOK)->EnableWindow(true);

 

       MySocket* psocket=new MySocket();

       if(Accept(*psocket)){

              psocket->AsyncSelect(FD_READ);

              m_socket=psocket;

       }else{

              delete psocket;

       }

       CAsyncSocket::OnAccept(nErrorCode);

}

  1. 8.      MyServerSocketH中添加头文件  #include "MySocket.h"
  2. 9.      双击正在监听按钮,创建函数

void CFuwuqiDlg::OnListen()

{

       // TODO: Add your control notification handler code here

       UpdateData(true);

       if(!AfxSocketInit()){

              AfxMessageBox("IDP_SOCKETS_INIT_FAILED");

              return ;

       }

       BOOL flag=m_serversocket.Create(m_port);

       if(!flag){

              AfxMessageBox("SOCKET ERROR");

              return ;

       }

       flag=m_serversocket.Listen(1);

       if(!flag){

              AfxMessageBox("SOCKET ERROR");

              return ;

       }

       SetDlgItemText(IDC_LISTEN,"正在监听");

}

10. 双击发送按钮,创建函数

 void CFuwuqi3Dlg::OnSend()

{

       // TODO: Add your control notification handler code here

       int ilen;

       int isent;

       UpdateData(true);

       if(m_sendmsg!=""){

              ilen=m_sendmsg.GetLength();

              isent=m_serversocket.m_socket->Send(LPCTSTR(m_sendmsg),ilen);

              if(isent==SOCKET_ERROR){

                     MessageBox("连接失败,请重试");

              }else{

                     m_msg+="服务器"+m_sendmsg;

                     m_msg+="\r\n";

                     UpdateData(false);

              }

       }

}

  1. 10.  右击C。。Dlg,添加成员变量,

 

  1. 11.  MySocketh添加头文件#include "MyServerSocket.h"
  2. 12.       

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!