弹窗查询
- 1. 插入一个dialg,设计界面如图
- 2. 新建类,serch,确定,查看类向导
- 3.
- 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);
}
}
- 5. 查询运行成功
增
- 右击插入dialog,设计如图
- 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);
}
}
上一条下一条
- 添加两个上一条下一条按钮
- 添加单机事件
3.为两个按钮添加变量分别为m_prebt,m_nextbt
- 代码:
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);
}
- 找到项目
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.
- 2. 设计界面如图:
- 3. 控件ID等
IDC_PORT 添加成员变量UNIT m_port
IDC_sendmsg 添加成员变量CString m_msg
IDC_msg 添加成员变量CString m_sendmsg
IDC_listen IDC_SEND
- 4. 查看类向导----〉ADDCLASS---〉new
- 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
- 6. 右击CMyServerSocket,添加成员变量
- 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);
}
- 8. 在MyServerSocket。H中添加头文件 #include "MySocket.h"
- 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);
}
}
}
- 10. 右击C。。Dlg,添加成员变量,
- 11. MySocket。h添加头文件#include "MyServerSocket.h"
- 12.