setserverdlg.cpp

来自「实现了一个聊天系统的客户端」· C++ 代码 · 共 141 行

CPP
141
字号
// SetServerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyQQClient.h"
#include "SetServerDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSetServerDlg dialog


CSetServerDlg::CSetServerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSetServerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSetServerDlg)
	m_iPort = 0;
	//}}AFX_DATA_INIT
}


void CSetServerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSetServerDlg)
	DDX_Control(pDX, IDC_IP_EDIT, m_addrIP);
	DDX_Control(pDX, IDC_PORT_MSG, m_msgPort);
	DDX_Control(pDX, IDC_IP_MSG, m_msgIP);
	DDX_Control(pDX, IDC_PORT_EDIT, m_editPort);
	DDX_Control(pDX, IDC_REVISE, m_btnRevise);
	DDX_Control(pDX, IDC_CANCEL, m_btnCancel);
	DDX_Text(pDX, IDC_PORT_EDIT, m_iPort);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSetServerDlg, CDialog)
	//{{AFX_MSG_MAP(CSetServerDlg)
	ON_BN_CLICKED(IDC_REVISE, OnRevise)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSetServerDlg message handlers

void CSetServerDlg::OnOK() 
{
	// TODO: Add extra validation here
	
//	CDialog::OnOK();
}

void CSetServerDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

void CSetServerDlg::OnRevise() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);

	if(m_addrIP.IsBlank()) {
		MessageBox("IP地址不能为空!请重新输入!");
		return ;
	}

	BYTE field0,field1,field2,field3;
	m_addrIP.GetAddress(field0,field1,field2,field3);

	if((field0 ==0)
		||(field1 ==0)
		||(field2 ==0)
		||(field3 ==0)) {
		MessageBox("您输入的IP地址有误!请重新输入!");
		return ;
	}
	
	if(m_iPort <= 0) {
		MessageBox("IP地址必须大于0!");
		return ;
	}

	sprintf(m_strIP,"%d.%d.%d.%d",field0,field1,field2,field3);

	MessageBox("要使您的设置生效,请重新启动客户端!");
	
	CDialog::OnOK();
}

BOOL CSetServerDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	char serverAddr[20];
	UINT serverPort;
	
	FILE * fp = fopen("server.info","rb");

	if(fp) {
		fread(serverAddr,20,1,fp);
		fread(&serverPort,sizeof(UINT),1,fp);

		fclose(fp);
	}

	m_addrIP.SetWindowText(serverAddr);

	CString str;
	str.Format("%d",serverPort);
	m_editPort.SetWindowText(str);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSetServerDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CRect rect;
	GetClientRect(&rect);

	CBrush * br = new CBrush(RGB(192,192,255));
	if ( br ) {
		dc.FillRect(&rect,br);
		delete br;
	}	
	// Do not call CDialog::OnPaint() for painting messages
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?