dlggetpos.cpp

来自「简单的远程控制工具,分为服务器与客户斋,让你了解socket编程的知识.」· C++ 代码 · 共 1,263 行 · 第 1/3 页

CPP
1,263
字号
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	m_pDoc->m_nEdtSecond = m_nEdtSecond;
//   	g_dwDelay = m_nEdtSecond;
}



/*过时
void CDlgGetPos::OnSelendokComboColor() 
{
	// TODO: Add your control notification handler code here
	
	UpdateData (TRUE);
	int nCurSel = m_oCboColors.GetCurSel ();
	if (nCurSel > 3)
		m_nBits = 24;
	else
		m_nBits = (int)pow (2,nCurSel);
	if (m_nBits == 2)
		m_nBits = 4;
	m_pDoc->m_nBits = m_nBits;
}
*/
void CDlgGetPos::OnCheckControl() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if (m_bChkControl)
	{
	   if (CmdProc_LogHook() == FALSE) {
        AfxMessageBox("建立键盘控制线程出错!!!");
    	return ;
	   }
    }
	else
	{
       CmdProc_EndHook();
	}
}

void CDlgGetPos::OnChangeEditCellsize() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if (m_nCellSize > 1 && m_nCellSize <= 5000)
       m_pDoc->m_nCellSize = m_nCellSize;
	else
       m_nCellSize = m_pDoc->m_nCellSize;
//	UpdateData(TRUE);
	
}

void CDlgGetPos::OnButtonSend() 
{
/*	if(pMsg->message == WM_SENDKEY_UP) 
	{
		BYTE	vKey,nScan;
	
		vKey = (BYTE) pMsg->wParam;
		nScan = (BYTE) (pMsg->lParam & 0x00ff0000)>>16;

		m_pDoc->m_dwHookFlags = KEYEVENTF_KEYUP;
		m_pDoc->m_dwHookParam1 = vKey;
		m_pDoc->m_dwHookParam2 = nScan;
		m_pDoc->SendMsg (CMD_KEY_HOOK);
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	if(m_start)
	{
		KEYMOUSE keymouse;
		CPeerSplitterWnd* splitter=(CPeerSplitterWnd*)GetParent();
		CScreenView* sctrl=(CScreenView*)splitter->GetPane(1,0);
		if(m_ALT)
			keymouse.style=PEER_KEY_DOWN;
		else
			keymouse.style=PEER_KEY_UP;
		keymouse.nkey=VK_MENU;
		PeerSendDataS(sctrl->s,(char*)&keymouse,sizeof(keymouse),&sctrl->retLen,
						  sctrl->hEvent);
		if(m_CTRL)
			keymouse.style=PEER_KEY_DOWN;
		else
			keymouse.style=PEER_KEY_UP;
		keymouse.nkey=VK_CONTROL;
		PeerSendDataS(sctrl->s,(char*)&keymouse,sizeof(keymouse),&sctrl->retLen,
						  sctrl->hEvent);
		if(m_SHIFT)
			keymouse.style=PEER_KEY_DOWN;
		else
			keymouse.style=PEER_KEY_UP;
		keymouse.nkey=VK_SHIFT;
		PeerSendDataS(sctrl->s,(char*)&keymouse,sizeof(keymouse),&sctrl->retLen,
						  sctrl->hEvent);
		if(m_WIN)
			keymouse.style=PEER_KEY_DOWN;
		else
			keymouse.style=PEER_KEY_UP;
		keymouse.nkey=VK_LWIN;
		PeerSendDataS(sctrl->s,(char*)&keymouse,sizeof(keymouse),&sctrl->retLen,
						  sctrl->hEvent);
	}
	
*/	
}

void CDlgGetPos::OnCheckWin() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if(m_WIN)
		m_pDoc->m_dwHookFlags = 0;
	else
		m_pDoc->m_dwHookFlags = KEYEVENTF_KEYUP;

	m_pDoc->m_dwHookParam1 = VK_LWIN;
	m_pDoc->m_dwHookParam2 = 0;
	SendMsg (CMD_KEY_HOOK);
	
}

void CDlgGetPos::OnCheckCtrl() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if (m_CTRL)
		m_pDoc->m_dwHookFlags = 0;
	else
		m_pDoc->m_dwHookFlags = KEYEVENTF_KEYUP;
	m_pDoc->m_dwHookFlags = 0;
    m_pDoc->m_dwHookParam2 = 0;
    m_pDoc->m_dwHookParam1 = VK_CONTROL;
//    m_pDoc->SendMsg (CMD_KEY_HOOK);
    SendMsg (CMD_KEY_HOOK);
}

void CDlgGetPos::OnCheckAlt() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if(m_ALT)
		m_pDoc->m_dwHookFlags = 0;
	else
		m_pDoc->m_dwHookFlags = KEYEVENTF_KEYUP;

	m_pDoc->m_dwHookParam1 = VK_MENU;
	m_pDoc->m_dwHookParam2 = 0;
//	m_pDoc->SendMsg (CMD_KEY_HOOK);
	SendMsg (CMD_KEY_HOOK);
}

void CDlgGetPos::OnCheckShift() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	if(m_SHIFT)
		m_pDoc->m_dwHookFlags = 0;
	else
		m_pDoc->m_dwHookFlags = KEYEVENTF_KEYUP;

	m_pDoc->m_dwHookParam1 = VK_SHIFT;
	m_pDoc->m_dwHookParam2 = 0;
//	m_pDoc->SendMsg (CMD_KEY_HOOK);
	SendMsg (CMD_KEY_HOOK);
	
}



void CDlgGetPos::OnButtonCad() 
{
	// TODO: Add your control notification handler code here
//	m_pDoc->SendMsg (CMD_KEY_CAD);
	SendMsg (CMD_KEY_CAD);
}

//选择彩色位数
void CDlgGetPos::OnSelendokComboColors() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	int nCurSel = m_oCboColors.GetCurSel();
	if (nCurSel > 3)
	{
		m_pDoc->m_nBits = 24;
	}
	else
	{
		m_nBits = (int)pow (2,nCurSel);
	    if (m_nBits == 2)
		   m_nBits = 4;
	     m_pDoc->m_nBits = m_nBits;
	}
}


//右双击
void CDlgGetPos::OnRButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
  if(!m_bChkControl)
	CDialog::OnRButtonDblClk(nFlags, point);
  fnSendPos(CMD_MOUSE_DBHOOK, CMD_MOUSE_RDBCLICK,
	   point);
}
//左双击
void CDlgGetPos::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
  if(!m_bChkControl)
	CDialog::OnLButtonDblClk(nFlags, point);
  fnSendPos(CMD_MOUSE_DBHOOK, CMD_MOUSE_LDBCLICK,
	  point);
}
//选择抓图区域
void CDlgGetPos::OnSelendokComboArea() 
{
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	m_pDoc->m_nArea = m_oCboArea.GetCurSel();
}

void CDlgGetPos::OnSelendokComboCompress() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	 m_pDoc->m_nCompress = m_oCboCompress.GetCurSel();
}



void CDlgGetPos::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
 int iCurrent;
if( pScrollBar == &m_vScrollBar)
{ switch(nSBCode)
{ case SB_THUMBPOSITION: //释放滚动块
m_vScrollBar.SetScrollPos(nPos);
break;
case SB_LINEDOWN: //击滚动条右箭头
iCurrent = m_vScrollBar.GetScrollPos();
iCurrent++;
if(iCurrent>m_vScrollBar.GetScrollLimit())
   iCurrent=m_vScrollBar.GetScrollLimit();
m_vScrollBar.SetScrollPos(iCurrent);
break;
case SB_LINEUP: //击滚动条左箭头
iCurrent = m_vScrollBar.GetScrollPos();
iCurrent--;
if(iCurrent<0) iCurrent=0;
m_vScrollBar.SetScrollPos(iCurrent);
break;
case SB_PAGEDOWN: //击滚动块右边空白区
iCurrent = m_vScrollBar.GetScrollPos();
iCurrent = iCurrent + 20;
if(iCurrent>m_vScrollBar.GetScrollLimit())
   iCurrent=m_vScrollBar.GetScrollLimit();
m_vScrollBar.SetScrollPos(iCurrent);
break;
case SB_PAGEUP: //击滚动块左边空白区
iCurrent = m_vScrollBar.GetScrollPos();
iCurrent = iCurrent - 20;
if(iCurrent<0) iCurrent=0;
m_vScrollBar.SetScrollPos(iCurrent);
break;
} // switch结束
Set_BackGroud_Image();
} // if结束

	
	CDialog::OnVScroll(nSBCode, nPos, pScrollBar);

}

void CDlgGetPos::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
int iCurrent;

if( pScrollBar == &m_hScrollBar)
{ switch(nSBCode)
{ case SB_THUMBPOSITION: //释放滚动块
m_hScrollBar.SetScrollPos(nPos);
//itoa(m_hScrollBar.GetScrollPos(),sPos,10);
//m_Editbox.SetSel(0,-1);
//m_Editbox.ReplaceSel(sPos);
break;
case SB_LINEDOWN: //击滚动条右箭头
iCurrent = m_hScrollBar.GetScrollPos();
iCurrent++;
if(iCurrent>m_hScrollBar.GetScrollLimit()) 
    iCurrent=m_hScrollBar.GetScrollLimit();
m_hScrollBar.SetScrollPos(iCurrent);
//itoa(m_Scrollbar.GetScrollPos(),sPos,10);
//m_Editbox.SetSel(0,-1);
//m_Editbox.ReplaceSel(sPos);
break;
case SB_LINEUP: //击滚动条左箭头
iCurrent = m_hScrollBar.GetScrollPos();
iCurrent--;
if(iCurrent<0) iCurrent=0;
m_hScrollBar.SetScrollPos(iCurrent);
//itoa(m_Scrollbar.GetScrollPos(),sPos,10);
//m_Editbox.SetSel(0,-1);
//m_Editbox.ReplaceSel(sPos);
break;
case SB_PAGEDOWN: //击滚动块右边空白区
iCurrent = m_hScrollBar.GetScrollPos();
iCurrent = iCurrent + 20;
if(iCurrent>m_hScrollBar.GetScrollLimit()) 
    iCurrent=m_hScrollBar.GetScrollLimit();
m_hScrollBar.SetScrollPos(iCurrent);
//itoa(m_Scrollbar.GetScrollPos(),sPos,10);
//m_Editbox.SetSel(0,-1);
//m_Editbox.ReplaceSel(sPos);
break;
case SB_PAGEUP: //击滚动块左边空白区
iCurrent = m_hScrollBar.GetScrollPos();
iCurrent = iCurrent - 20;
if(iCurrent<0) iCurrent=0;
m_hScrollBar.SetScrollPos(iCurrent);
//itoa(m_Scrollbar.GetScrollPos(),sPos,10);
//m_Editbox.SetSel(0,-1);
//m_Editbox.ReplaceSel(sPos);
break;
} // switch结束
Set_BackGroud_Image();
} // if结束

	
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

void CDlgGetPos::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if(!m_bChkContinue)
	   CDialog::OnRButtonDown(nFlags, point);
	fnSendPos(CMD_MOUSE_HOOK,MOUSEEVENTF_RIGHTDOWN,
		point);
}

void CDlgGetPos::OnRButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if(!m_bChkContinue)
  	   CDialog::OnRButtonUp(nFlags, point);
	fnSendPos(CMD_MOUSE_HOOK, MOUSEEVENTF_RIGHTUP,
		point);
}
void CDlgGetPos::fnSendPos(UINT wCmd, DWORD dwFlags, CPoint point)
{
  UpdateData (TRUE);
  CRect rcArea;
  CWnd* pWnd = ChildWindowFromPoint(point);
  if (pWnd && pWnd->GetSafeHwnd() == m_oStaArea.GetSafeHwnd())
	{
		m_oStaArea.GetWindowRect (&rcArea);
		m_ptStart = point;
		ClientToScreen (&point);
		point.x = point.x - rcArea.left+m_hScrollBar.GetScrollPos();
		point.y = point.y -  rcArea.top+m_vScrollBar.GetScrollPos();
//发送移动命令
/*		m_pDoc->m_dwHookFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
		m_pDoc->m_dwHookParam1 = point.x;
		m_pDoc->m_dwHookParam2 = point.y;
		SendMsg (CMD_MOUSE_HOOK);
*/
//发送击键命令
		m_pDoc->m_dwHookFlags = dwFlags;
		m_pDoc->m_dwHookParam1 = point.x;
		m_pDoc->m_dwHookParam2 = point.y;
		SendMsg (wCmd);
	}

}

void CDlgGetPos::OnCheckLock() 
{
	// TODO: Add your control notification handler code here
	UpdateData (TRUE);
	m_pDoc->m_dwHookFlags = m_bLock;
	SendMsg (CMD_LOCK_SCREEN);
	
}

void CDlgGetPos::OnReleasedcaptureQuality(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
//	UpdateData (TRUE);
	m_pDoc->m_nJpegQ = m_SliderQ.GetPos();
	*pResult = 0;
}

void CDlgGetPos::OnButtonReconnect() 
{
/*   int old = m_pDoc->m_nEdtSecond;
   m_pDoc->m_nEdtSecond = 2000;
   CmdProc_SysEndLogImage();
   m_pDoc->m_nEdtSecond = old;
   Sleep(500);
*/
   CDialog::OnOK();	  
}




⌨️ 快捷键说明

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