📄 chatserverdlg.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 + -