chatdlg.h

来自「仿造QQ聊天界面 超级相向 第一次作品 不足之处见谅」· C头文件 代码 · 共 178 行

H
178
字号
// ChatDlg.h : header file
//
#include "StdAfx.h"
#include "BtnST.h"
#include "PictureEx.h"



#if !defined(AFX_CHATDLG_H__CA158545_90FE_4D51_8EB9_8AD271AFBB86__INCLUDED_)
#define AFX_CHATDLG_H__CA158545_90FE_4D51_8EB9_8AD271AFBB86__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CChatDlg dialog
#define	WM_RECVDATA		WM_USER+1
#define InBlocks 4 //存储输入音频数据的单元数
#define OutBlocks 4  //存储输出音频数据的单元数
#define  INP_BUFFER_SIZE 16384
#define  PORT1 8000

struct CAudioData
{
	PBYTE lpdata;
	DWORD dwLength;
};
struct RECVPARAM
{
	SOCKET sock;
	HWND hwnd;
};

class CChatDlg : public CDialog
{
// Construction
public:
	DWORD dwIP;
	SOCKADDR_IN addrTo;
	CFont   m_tFont;                       //font style of the ctrls
	int iBits;//当前显示分辨率下每个像素所占字节数
	WORD wBitCount;//位图中每个像素所占字节数
	DWORD dwPaletteSize,//定义调色板大小
		dwBmBitsSize,//位图中像素字节大小
	dwDIBSize;//位图文件大小 
	BITMAP Bitmap;//位图属性结构
	BITMAPFILEHEADER bmfHdr;//位图文件头结构
	BITMAPINFOHEADER bi;//位图信息头结构 
	LPBITMAPINFOHEADER lpbi;//指向位图信息头结构
	HANDLE hDib, hPal,hOldPal;//定义文件,分配内存句柄,调色板句柄

	CString getin1;
	int sendlen;
	int len;
	CString m_fileName;
	int m_Potr;//当前使用端口

	static DWORD WINAPI RecvProc(LPVOID lpParameter);
	BOOL InitSocket();
	CChatDlg(CWnd* pParent = NULL);	// standard constructor
	bool FileWork,FileStop,StopServer;
	int m_client,m_server;
	int SaveYouFile(CSocket &recSo,SOCKADDR_IN &client);
	CString GetError(DWORD error);
	void SaveYouScreen(HBITMAP hBitmap,SOCKADDR_IN &client);
	HBITMAP CopyScreenToBitmap();
	int GetLocalHostName(CString &sHostName);
	int GetIpAddress(const CString & sHostName,CString & sIpAddress);
	int GetNamebyAddress(const CString &IpAddress,CString &sYouName);//获得对方计算机名称
	int ReceiveFileMsg(CSocket & socket,SOCKADDR_IN &client);
	void OnGetCaputer();
	char m_type;//接受类型/F-文件,C-抓平,D-关闭,M-消息
// Dialog Data
	//{{AFX_DATA(CChatDlg)
	enum { IDD = IDD_CHAT_DIALOG };
	CEdit	m_editsend;
	CProgressCtrl	m_Progress;
	CIPAddressCtrl	m_ip;
	CString m_keep;
	CString	m_keep1;
	CPictureEx	m_gifboy;
	CPictureEx  m_gifgirl;
	//}}AFX_DATA

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

// Implementation
	public:
		CString str2;
		//HICON m_hIcon;
		HWAVEIN hWaveIn;    //声音输入
		HWAVEOUT hWaveOut;  //输出设备
		PWAVEHDR pWaveHdr1,pWaveHdr2;    //相关"头结构体"          
		PWAVEHDR pWaveHdrOut;		
		WAVEFORMATEX m_waveformin,m_waveformout;    
		PBYTE pBuffer1,pBuffer2;//输入设备所用缓冲区
		//用于暂存录入后要发送的及接收到的即将要播放的声音文件的循环队列,
		CAudioData m_AudioDataIn[InBlocks],m_AudioDataOut[OutBlocks];
		int   nAudioIn, nSend, //录入、发送指针
			nAudioOut, nReceive;//接收、播放指针
        //对于录音和放音都存在和网络的同步问题,主要靠这些指针进行协调
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CChatDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnBtnSend();
	afx_msg void OnFont();
	afx_msg void OnColor();
	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
	afx_msg void OnBkcolor();
	afx_msg void OnKeep();
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg void OnSendFile();
	afx_msg void OnConnect();
	afx_msg void OnButtonDisconnect();
	afx_msg void OnButtonCaputer();
	afx_msg void OnMyCaputer();
	afx_msg void OnStopFilesend();
	afx_msg void OnMM_WIM_DATA(UINT wParam,LONG lParam);
	afx_msg void OnMM_WIM_CLOSE(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_OPEN(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_DONE(UINT wParam,LONG lParam);
	afx_msg void OnMM_WOM_CLOSE(UINT wParam,LONG lParam);
	virtual void OnOK();
	afx_msg void OnVoice();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnDestroy();
	//}}AFX_MSG
	afx_msg void OnRecvData(WPARAM wParam,LPARAM lParam);
	DECLARE_MESSAGE_MAP()
private:
	CString strSend;
	CEdit edit1;
	CRect m_small;
	CRect m_large;
	CFile cfile;
	CTime m_time;
	CBrush m_brush;
	COLORREF rgb1;
	COLORREF rgb2;
	CFont* m_font;
	SOCKET m_socket;
	CButtonST		m_connect;
	CButtonST		m_voice;
	CButtonST		m_send;
	CButtonST		m_capture;
	CButtonST		m_disconnect;
	CButtonST		m_color;
	CButtonST		m_fontcol;
	CButtonST		m_keepcol;
	CButtonST		m_mycapture;
	CButtonST		m_sendfile;
	CButtonST		m_stopfilesend;
	CButtonST		m_cancle;
	CButtonST		m_ok;
	CButtonST		m_bkcolor;	

};
struct FILEINFO
{
	int fileLength;
	char fileName[100];
	
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CHATDLG_H__CA158545_90FE_4D51_8EB9_8AD271AFBB86__INCLUDED_)

⌨️ 快捷键说明

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