📄 chatdlg.h
字号:
#if !defined(AFX_CHATDLG_H__9D44E9A0_4416_49D9_B8F9_B44A528DBD93__INCLUDED_)
#define AFX_CHATDLG_H__9D44E9A0_4416_49D9_B8F9_B44A528DBD93__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "resource.h"
#include <afxmt.h> //for CCriticalSection
// ChatDlg.h : header file
//
#define WM_FRIEND_MSG (WM_USER + 101)
#define WM_CHAT_MSG (WM_USER + 105)
#define OFFLINE 0
//聊天窗口类。
//1.具有监听和接受其他人发送来聊天报文的功能。
//2.有发送报文的功能。
//3.有保存聊天报文的功能。
//4.在朋友下线的时候,提示后会关闭自己,并且
//释放窗口资源。
//##ModelId=3E3271770141
class CChatDlg : public CDialog
{
private:
void SendFile(CString strFileName);
//##ModelId=3E35700A00E7
CCriticalSection m_cs;
//断开聊天窗口和朋友的联系。
//##ModelId=3E34420F02E3
void BreakRelationToFriend();
//对方的朋友链表中的位置POSITION
//##ModelId=3E32722A0121
POSITION m_posPeer;
//对方的NetMsgID
//##ModelId=3E3272450242
DWORD m_dwPeerNetMsgID;
//对方的Nick Name
//##ModelId=3E3272B0030E
CString m_strPeerNickName;
//动态,对方的IP地址
//##ModelId=3E3272CF0204
CString m_strPeerIPAddress;
//自己的NetMsgID
//##ModelId=3E3273080076
DWORD m_dwSelfNetMsgID;
//自己的Nick Name
//##ModelId=3E327316013E
CString m_strSelfNickName;
// Construction
public:
//##ModelId=3E3442200067
void set_Peer(POSITION value);
//##ModelId=3E3442310198
const POSITION& get_Peer() const;
//保存当前对象内的数据,
//一般是用来保存已经发送完毕的信息。
//和接受的聊天信息。
//##ModelId=3E3302810176
void SaveMsg(CString speaker, CString strMsg);
//聊天使用的port
//##ModelId=3E32E44C029A
static short shortChatPort;
//使用UDP进行聊天内容的发送。
//##ModelId=3E3273420318
void SendMsg();
//保存当前对象内的数据,
//一般是用来保存已经发送完毕的信息。
//和接受的聊天信息。
//##ModelId=3E3273A10260
void SaveMsg();
//由报文接收服务线程来调用的一个回调方法。
//它用来保存和显示朋友发送来的聊天内容。
//##ModelId=3E3273DF0382
void OnRecv(CString strMsg);
//只能被调用一次。在本系统内这次调用由APP来完成。
//在方法内部有一个静态计数器,当第二次
//调用的时候会自动退出。
//##ModelId=3E327F2503D2
static UINT RecvService(LPVOID param = 0);
//创建一个与指定朋友信息相关的聊天窗口。
//并且,返回这个窗口的指针。
//##ModelId=3E3283360248
static CChatDlg * CreateFriendRelatedWnd(POSITION pos, DWORD dwPeerNetMsgID, CString strPeerNickName, CString strPeerIPAddress);
//朋友下线的时候响应
//##ModelId=3E32866E0030
LRESULT OnFriendOffline(WPARAM wParam, LPARAM lParam);
// Dialog Data
//{{AFX_DATA(CChatDlg)
enum { IDD = IDD_DIALOG_CHAT };
//##ModelId=3E361E250288
CEdit m_edtChatHist;
//##ModelId=3E32FB850193
CEdit m_edtMsg;
//##ModelId=3E32FB850220
CButton m_cmdSend;
//聊天内容
//##ModelId=3E32FB8802F6
CString m_strMsg;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChatDlg)
protected:
//##ModelId=3E327177015F
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//##ModelId=3E34420F0351
virtual void PostNcDestroy();
//}}AFX_VIRTUAL
// Implementation
protected:
//##ModelId=3E361E2502AF
LRESULT OnChatMsg(WPARAM wParam, LPARAM lParam);
//下线时的响应,处理post过来的消息。
//##ModelId=3E32FB880332
afx_msg LRESULT OnFriendMsg(WPARAM wParam, LPARAM lParam);
//将它设置成为保护的访问类型,这样
//这个类的对象不能由外部来创建。
//##ModelId=3E3271770155
CChatDlg(CWnd* pParent = NULL); // standard constructor
// Generated message map functions
//{{AFX_MSG(CChatDlg)
//##ModelId=3E32EC9F0397
afx_msg void OnSend();
//##ModelId=3E34420F0383
afx_msg void OnClose();
//响应用户拖拽文件。
//文件传输使用方法
//##ModelId=3E361E250309
afx_msg void OnDropFiles(HDROP hDropInfo);
//##ModelId=3E431B0A03E0
afx_msg void OnFiletran();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHATDLG_H__9D44E9A0_4416_49D9_B8F9_B44A528DBD93__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -