客户端注册登陆,服务器匹配用户名密码
- 资源视图建立对话框style->puptop,更改ID为IDD_DIA_JOIN,添加基于CDialog类Sign_Join
- 添加两个编辑框变量名分别是
m_edit1
和m_edit2
,然后添加按钮,三个,功能分别是注册,登陆,和退出
- 更改CDialog.h中的结构体和协议号的定义,相应的,在另一个程序里Server.h文件中做同样修改
enum{
INF_ADD = 0x1234,
INF_BROW,
INF_JOIN,
INF_LOGIN,
INF_FIND
};
struct ServerData
{
int Row;
int Column;
int Num;
char Account[200];
char Pass[200];
bool flag;
};
#include "afxwin.h"
- 设置登陆对话框的弹出位置,资源视图,右边属性,重写函数OnPaint()
void Sign_Join::OnPaint()
{
CPaintDC dc(this);
int xSize = ::GetSystemMetrics (SM_CXSCREEN);
int ySize = ::GetSystemMetrics (SM_CYSCREEN);
int cx = (xSize*2)/6;
int cy = (ySize*3)/6;
int x = (xSize-cx)/2;
int y = (ySize-cy)/2;
CWnd::MoveWindow(CRect(x,y,cx+x,cy+y));
}
客户端
- 一、客户端中初始化及三个按钮响应函数的实现,双击开启函数
- 1、初始化,登陆注册新建一个Socket进行与服务器的链接
- Sign_Join.h中,加一句
class Sign_Join : public CDialog
{
CSocket sock;
- 资源视图下,登陆注册对话框右边属性窗口,重写函数OnInitDialog()
BOOL Sign_Join::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText("登陆/注册");
::EnableMenuItem(::GetSystemMenu(this->m_hWnd, false), SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
sock.Create();
if (!sock.Connect("127.0.0.1",8668))
{
AfxMessageBox("连接失败:无法连接服务器,请检查你的网络连接!");
EndDialog(IDCANCEL);
return FALSE;
}
return