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

📄 mainwnd.cpp

📁 Visual C++网络通信编程实用案例精逊配套源码 光盘中存放的是书中涉及的所有实例的源代码和经过编译后的应用程序。所有程序均经过测试
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				SetTimer(m_hWnd,0,m_iTimerInterval,NULL);
			}
		}
	}
	// 选择网格空间菜单
	else if (iId == IDM_GRIDSPACING)
	{
		// 设置当前的网格空间
		pGridSpacing->m_nGridX = nGridX;
		pGridSpacing->m_nGridY = nGridY;
		pGridSpacing->m_fGridX = fGridX;
		pGridSpacing->m_fGridY = fGridY;
		if (DialogBox(m_hInst,MAKEINTRESOURCE(IDD_GRIDSPACING),m_hWnd,(DLGPROC)GridSpacingDlgProc))
		{
			BOOL	fChange = FALSE;
			if (nGridX != pGridSpacing->m_nGridX)
				fChange = TRUE;
			if (nGridY != pGridSpacing->m_nGridY)
				fChange = TRUE;

			// 得到网格空间值
			nGridX = pGridSpacing->m_nGridX;
			nGridY = pGridSpacing->m_nGridY;
			fGridX = pGridSpacing->m_fGridX;
			fGridY = pGridSpacing->m_fGridY;
			if (fConnected && fChange)
			{
				KillTimer(m_hWnd,0);
				SetGrids(m_hWnd);
				UpdateRegionalScreen(m_hWnd,sClient,TRUE);
				SetTimer(m_hWnd,0,m_iTimerInterval,NULL);
			}
		}
	}
	// 选择颜色模式的菜单
	else if (iId == IDM_COLORMODE)
	{
		// 设置当前的压缩级数和模式
		pColorMode->m_bmBitsPixel = bmBitsPixel;
		if (DialogBox(m_hInst,MAKEINTRESOURCE(IDD_COLORMODE),m_hWnd,(DLGPROC)ColorModeDlgProc))
		{
			bmBitsPixel = pColorMode->m_bmBitsPixel;
			if (fConnected)
			{
				KillTimer(m_hWnd,0);
				memset(szMouseMessage,'\0',sizeof(szMouseMessage));
				sprintf(szMouseMessage,"WM_CMOD;%d;0;0;0;\0",bmBitsPixel);
				SendCommand(hWnd,1,szMouseMessage);
				SetGrids(m_hWnd);
				UpdateRegionalScreen(m_hWnd,sClient,TRUE);
				SetTimer(m_hWnd,0,m_iTimerInterval,NULL);
			}
		}
	}
	else if(iId==IDC_ABOUT)
	{
		MessageBox(hWnd,"2003-7-2创建\r\n一个远程控制的客户端程序","远程控制客户端",MB_OK);
	}

}
// 处理WM_VSCROLL消息
void CMainWnd::OnVScroll(HWND hWnd,HWND hWndCtl,UINT iCode,int iPos)
{
	if (fDIBitmap)
	{
		if (iCode == SB_LINEUP)
			iVScrollPos = iVScrollPos + 1;
		else if (iCode == SB_LINEDOWN)
			iVScrollPos = iVScrollPos - 1;
		else if (iCode == SB_PAGEUP)
			iVScrollPos = iVScrollPos + 64;
		else if (iCode == SB_PAGEDOWN)
			iVScrollPos = iVScrollPos - 64;
		else if (iCode == SB_THUMBTRACK)
			iVScrollPos = -iPos;
		else if (iCode == SB_THUMBPOSITION)
			iVScrollPos = -iPos;

		if (-iVScrollPos < 0)
			iVScrollPos = 0;
		if (-iVScrollPos > (iScreenHeight - m_Rect.bottom))
			iVScrollPos = -(iScreenHeight - m_Rect.bottom);

		SetScrollPos(hWnd,SB_VERT,-iVScrollPos,TRUE);

		InvalidateRect(hWnd,NULL,FALSE);
	}
}

//处理WM_HSCROLL消息
void CMainWnd::OnHScroll(HWND hWnd,HWND hWndCtl,UINT iCode,int iPos)
{
	if (fDIBitmap)
	{
		if (iCode == SB_LINEUP)
			iHScrollPos = iHScrollPos - 1;
		else if (iCode == SB_LINEDOWN)
			iHScrollPos = iHScrollPos + 1;
		else if (iCode == SB_PAGEUP)
			iHScrollPos = iHScrollPos - 48;
		else if (iCode == SB_PAGEDOWN)
			iHScrollPos = iHScrollPos + 48;
		else if (iCode == SB_THUMBTRACK)
			iHScrollPos = iPos;
		else if (iCode == SB_THUMBPOSITION)
			iHScrollPos = iPos;

		if (iHScrollPos < 0)
			iHScrollPos = 0;
		if (iHScrollPos > (iScreenWidth - m_Rect.right))
			iHScrollPos = iScreenWidth - m_Rect.right;

		SetScrollPos(hWnd,SB_HORZ,iHScrollPos,TRUE);

		InvalidateRect(hWnd,NULL,FALSE);
	}
}

// 处理左键双击的消息
void CMainWnd::OnLButtonDblClk(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_LBK;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理左键按下的消息
void CMainWnd::OnLButtonDown(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);
		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_LBD;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理左键弹起的消息
void CMainWnd::OnLButtonUp(HWND hWnd,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_LBU;%d;%d;%d;0;\0",x,y,keyFlags);

		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理中键按下的消息
void CMainWnd::OnMButtonDblClk(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_MBK;%d;%d;%d;0;\0",x,y,keyFlags);

		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理中键按下的消息
void CMainWnd::OnMButtonDown(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_MBD;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理中键弹起的消息
void CMainWnd::OnMButtonUp(HWND hWnd,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_MBU;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理右键双击的消息
void CMainWnd::OnRButtonDblClk(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);
		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_RBK;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理右键按下的消息
void CMainWnd::OnRButtonDown(HWND hWnd,BOOL fDoubleClick,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_RBD;%d;%d;%d;0;\0",x,y,keyFlags);

		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理右键弹起的消息
void CMainWnd::OnRButtonUp(HWND hWnd,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_RBU;%d;%d;%d;0;\0",x,y,keyFlags);

		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理鼠标移动的消息
void CMainWnd::OnMouseMove(HWND hWnd,int x,int y,UINT keyFlags)
{
	if (fConnected)
	{
		x += iHScrollPos;
		y += (-1 * iVScrollPos);

		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_MM;%d;%d;%d;0;\0",x,y,keyFlags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理键按下的消息
void CMainWnd::OnKeyDown(HWND hWnd,UINT vk,BOOL fDown,int cRepeat,UINT flags)
{
	if (fConnected)
	{
		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_KD;%d;%d;%d;%d;\0",vk,fDown,cRepeat,flags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 处理键弹起的消息
void CMainWnd::OnKeyUp(HWND hWnd,UINT vk,BOOL fDown,int cRepeat,UINT flags)
{
	if (fConnected)
	{
		memset(szMouseMessage,'\0',sizeof(szMouseMessage));
		sprintf(szMouseMessage,"WM_KU;%d;%d;%d;%d;\0",vk,fDown,cRepeat,flags);
		SendCommand(m_hWnd,1,szMouseMessage);
	}
}

// 得到新的屏幕
void CMainWnd::GetScreen()
{
	SendCommand(m_hWnd,0,NULL);
}
//获得本地计算机名称
int CMainWnd::GetLocalHostName(char* sHostName)	
{
	char szHostName[256];
	int nRetCode;
	nRetCode=gethostname(szHostName,sizeof(szHostName));
	if(nRetCode!=0)
	{
		//产生错误
		strcpy(sHostName,"没有取得");
		return GetLastError();
	}
	strcpy(sHostName,szHostName);
	return 0;
}
//获得本地IP
int CMainWnd::GetIpAddress(char *sHostName, char *sIpAddress)
{
	struct hostent FAR * lpHostEnt=gethostbyname(sHostName);
	if(lpHostEnt==NULL)
	{
		//产生错误
		sIpAddress=NULL;
		return GetLastError();
	}
	//获取IP
	LPSTR lpAddr=lpHostEnt->h_addr_list[0];
	if(lpAddr)
	{
		struct in_addr inAddr;
		memmove(&inAddr,lpAddr,4);
		//转换为标准格式
		strcpy(sIpAddress,inet_ntoa(inAddr));
	}
	return 0;
}
//获得本地IP
int CMainWnd::GetIpAddress(char *sHostName, BYTE *f0,BYTE *f1,BYTE *f2,BYTE *f3)
{
	struct hostent FAR * lpHostEnt=gethostbyname(sHostName);
	if(lpHostEnt==NULL)
	{
		//产生错误
		f0=f1=f2=f3=0;
		return GetLastError();
	}
	//获取IP
	LPSTR lpAddr=lpHostEnt->h_addr_list[0];
	if(lpAddr)
	{
		struct in_addr inAddr;
		memmove(&inAddr,lpAddr,4);
		*f0=inAddr.S_un.S_un_b.s_b1;
		*f1=inAddr.S_un.S_un_b.s_b2;
		*f2=inAddr.S_un.S_un_b.s_b3;
		*f3=inAddr.S_un.S_un_b.s_b4;
	}
	return 0;
}

⌨️ 快捷键说明

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