📄 mainwnd.cpp
字号:
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 + -