⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chatserverdlg.h

📁 c++ 图表的设计
💻 H
字号:
// ChatServerDlg.h : header file
//

#if !defined(AFX_CHATSERVERDLG_H__FB6C880E_A6E0_48DB_AEE5_6ABDC67B2A12__INCLUDED_)
#define AFX_CHATSERVERDLG_H__FB6C880E_A6E0_48DB_AEE5_6ABDC67B2A12__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CChatServerDlg dialog
#include <list>
using namespace std;


class CChatServerDlg : public CDialog
{
// Construction
public:
	CChatServerDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CChatServerDlg)
	enum { IDD = IDD_CHATSERVER_DIALOG };
	CEdit	m_editMsg;
	CListCtrl	m_listMessage;
	CListCtrl	m_listUser;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CChatServerDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	virtual void OnCancel();
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CChatServerDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnStartSvr();	
	afx_msg LRESULT OnSocketData(WPARAM w,LPARAM l);
	afx_msg void OnMsgToAll();
	//}}AFX_MSG	
	DECLARE_MESSAGE_MAP()
private:	
	typedef struct tagUser {
		tagUser()
		{
			memset(this,0,sizeof(this));
		}
		char name[9];
		SOCKADDR_IN addr;
	}StUser;
	typedef list<StUser> ListUser;
	//消息类型
	enum msgType
	{
		EM_MSG=0,		//普通消息
		EM_REG_ID=1,	//注册ID
		EM_DEL_ID=2,	//销毁ID
		EM_ALL_MSG=3,	//群发消息
		EM_USERS=4,		//用户列表
		EM_USERS_EXIT=5	//用户退出
	};
protected:
	void InitCtls();
	CString GetLastErrorMsg();
	void CloseSocket();
	void AddMsg(CString from,CString to,CString msg);
	bool FindUser(char* name,StUser& st,BOOL remove=FALSE);
	
	void OnMsgData(char* pData,int nLen);
	void OnRegData(char* pData,SOCKADDR_IN* pAddr);
	void OnDelData(char* pData);
	void OnUserListData(SOCKADDR_IN* pAddr);
private:
	SOCKET m_svr;
	SOCKADDR_IN m_svrAddr;
	list<StUser> m_listUserInfo;
	
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHATSERVERDLG_H__FB6C880E_A6E0_48DB_AEE5_6ABDC67B2A12__INCLUDED_)

⌨️ 快捷键说明

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