【VC开源代码栏目提醒】:网学会员在VC开源代码频道为大家收集整理了UpdateUserInfoDlg.cpp提供大家参考,希望对大家有所帮助!
// UpdateUserInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NetMsgClient.h"
#include "UpdateUserInfoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUpdateUserInfoDlg dialog
CUpdateUserInfoDlg::CUpdateUserInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUpdateUserInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CUpdateUserInfoDlg)
m_strAddress = _T("");
m_nAge = 0;
m_nId = 0;
m_strNickname = _T("");
m_strPassword = _T("");
m_strRePassword = _T("");
//}}AFX_DATA_INIT
}
void CUpdateUserInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUpdateUserInfoDlg)
DDX_Control(pDX, IDC_COMBO_SEX, m_cbSex);
DDX_Text(pDX, IDC_ADDRESS, m_strAddress);
DDX_Text(pDX, IDC_AGE, m_nAge);
DDX_Text(pDX, IDC_ID, m_nId);
DDX_Text(pDX, IDC_NICKNAME, m_strNickname);
DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
DDX_Text(pDX, IDC_REPASSWORD, m_strRePassword);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUpdateUserInfoDlg, CDialog)
//{{AFX_MSG_MAP(CUpdateUserInfoDlg)
ON_BN_CLICKED(IDC_UPDATEINFO, OnUpdateinfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUpdateUserInfoDlg message handlers
BOOL CUpdateUserInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_cbSex.AddString("男");
m_cbSex.AddString("女");
m_cbSex.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUpdateUserInfoDlg::OnUpdateinfo()
{
UpdateData(TRUE);
USER_INF userInf;
CString strSex;
char buff[MAX_BUFF_SIZE];
m_cbSex.GetLBText(m_cbSex.GetCurSel(), strSex);
if(m_strPass
word != m_strRePassword)
{
AfxMessageBox("密码与确认密码不一致");
return;
}
if(m_strNickname == _T("") || strSex==_T("") || m_nAge==0 || m_strAddress==_T(""))
{
MessageBox("请填充所有选项","修改出错提示",MB_ICONEXCLAMATION);
return;
}
memset(&userInf,0,sizeof(userInf));
userInf.id = m_nId;
strcpy(userInf.nickname, m_strNickname);
strcpy(userInf.sex, strSex);
userInf.age = m_nAge;
strcpy(userInf.address,m_strAddress);
strcpy(userInf.password,m_strPassword);
GetDlgItem(IDC_UPDATEINFO)->EnableWindow(FALSE);
//发送修改该用户信息命令 例如:"UINF 1000\t\n"就是update用户1000的信息
memset(buff,0,sizeof(buff));
sprintf(buff,"UINF %d\t\n",m_nId);
if(send(m_pNetMsgClentDlg->m_dcSocketClient,buff,sizeof(buff),0) == SOCKET_ERROR)
{
closesocket(m_pNetMsgClentDlg->m_dcSocketClient);
AfxMessageBox("与服务器连接中断请重新登陆");
m_pNetMsgClentDlg->RestartLogin();
return ;
}
//发送修改后的用户信息
memset(buff,0,sizeof(buff));
if(send(m_pNetMsgClentDlg->m_dcSocketClient,(char *)&userInf,sizeof(userInf),0) == SOCKET_ERROR)
{
closesocket(m_pNetMsgClentDlg->m_dcSocketClient);
AfxMessageBox("与服务器连接中断请重新
登陆");
m_pNetMsgClentDlg->RestartLogin();
return ;
}
//接受确认信息
memset(buff,0,sizeof(buff));
if(recv(m_pNetMsgClentDlg->m_dcSocketClient,buff,sizeof(buff),0) == SOCKET_ERROR)
{
closesocket(m_pNetMsgClentDlg->m_dcSocketClient);
AfxMessageBox("与服务器连接中断请重新登陆");
m_pNetMsgClentDlg->RestartLogin();
return ;
}
if(atoi(buff) == UPDATE_SUCCESS)
{
//修改成功
char strTemp[40];
sprintf(strTemp,"修改成功");
MessageBox(strTemp,"提示",MB_ICONEXCLAMATION);
}
else
{
//修改失败
char strTemp[40];
sprintf(strTemp,"修改失败");
MessageBox(strTemp,"提示",MB_ICONEXCLAMATION);
}
GetDlgItem(IDC_UPDATEINFO)->EnableWindow(TRUE);
OnCancel();
}