screenview.h

来自「远程控制系统,可以实现局域网内进行远程控制计算机,很方便,并且是学习用的非常好的」· C头文件 代码 · 共 67 行

H
67
字号
// screenview.h: interface for the CScreenView class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_)
#define AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_

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

class CScreenView : public CDialogImpl<CScreenView>
{
public:
	enum { IDD = IDD_SCREENVIEW };

	BEGIN_MSG_MAP(CScreenView)
		MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
		MESSAGE_HANDLER(WM_TIMER, OnTimer)
		MESSAGE_HANDLER(WM_SIZE, OnSize)
		MESSAGE_HANDLER(WM_PAINT, OnPaint)
		MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
		MESSAGE_HANDLER(WM_SOCKET_READ, OnSocketRead)
		MESSAGE_HANDLER(WM_HSCROLL, OnHscroll)
		MESSAGE_HANDLER(WM_VSCROLL, OnVscroll)
		MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
		MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
		MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseMove)
		MESSAGE_HANDLER(WM_CONNECT_CREATED, OnConnectCreated)
		MESSAGE_HANDLER(WM_CONNECT_CLOSED, OnConnectClosed)
	END_MSG_MAP()

	LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnTimer(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/);
	LRESULT OnSocketRead(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnHscroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnVscroll(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnLButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnMouseMove(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnConnectCreated(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
	LRESULT OnConnectClosed(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);

private:
	SOCKET slave_sock;
	bool updating;
	PSCREENCAP_SCREENBITMAP psb;
	BITMAPINFOHEADER bih;
	PVOID bScreenBuffer;
	int framecount;
	int nScreenX;
	int nScreenY;
	int nLastPackSize;
	bool bSetCursor;
	int nLastPosX;
	int nLastPosY;

	void UpdateBuffer(PBYTE src, PBYTE dst, DWORD len, DWORD width);
	void XorBuffer(PBYTE src, PBYTE dst, DWORD len);
	static int ScreenUpdate(CSockMgr::PPACK_INFO pack, LPVOID param = NULL);
};

#endif // !defined(AFX_SCREENVIEW_H__CE4F390B_D8C3_41D4_A361_B3C59F017573__INCLUDED_)

⌨️ 快捷键说明

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