远程桌面优化
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
enum
|
||||
{
|
||||
IDM_CONTROL = 0x1010,
|
||||
IDM_FULLSCREEN,
|
||||
IDM_SEND_CTRL_ALT_DEL,
|
||||
IDM_TRACE_CURSOR, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾԶ<CABE><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
IDM_BLOCK_INPUT, // <20><><EFBFBD><EFBFBD>Զ<EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -24,9 +25,11 @@ IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog)
|
||||
|
||||
#define ALGORITHM_DIFF 1
|
||||
|
||||
CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJECT* ContextObject)
|
||||
CScreenSpyDlg::CScreenSpyDlg(CWnd* Parent, IOCPServer* IOCPServer, CONTEXT_OBJECT* ContextObject)
|
||||
: CDialog(CScreenSpyDlg::IDD, Parent)
|
||||
{
|
||||
m_bFullScreen = FALSE;
|
||||
|
||||
m_iocpServer = IOCPServer;
|
||||
m_ContextObject = ContextObject;
|
||||
|
||||
@@ -47,18 +50,9 @@ IMPLEMENT_DYNAMIC(CScreenSpyDlg, CDialog)
|
||||
m_ulHScrollPos = 0;
|
||||
m_ulVScrollPos = 0;
|
||||
|
||||
if (m_ContextObject==NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
ULONG ulBitmapInforLength = m_ContextObject->InDeCompressedBuffer.GetBufferLength() - 1;
|
||||
m_BitmapInfor_Full = (BITMAPINFO *) new BYTE[ulBitmapInforLength];
|
||||
|
||||
if (m_BitmapInfor_Full==NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy(m_BitmapInfor_Full, m_ContextObject->InDeCompressedBuffer.GetBuffer(1), ulBitmapInforLength);
|
||||
|
||||
m_bIsCtrl = FALSE;
|
||||
@@ -101,6 +95,14 @@ BEGIN_MESSAGE_MAP(CScreenSpyDlg, CDialog)
|
||||
ON_WM_CLOSE()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_HSCROLL()
|
||||
ON_WM_VSCROLL()
|
||||
ON_WM_LBUTTONDOWN()
|
||||
ON_WM_LBUTTONUP()
|
||||
ON_WM_MOUSEWHEEL()
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_KILLFOCUS()
|
||||
ON_WM_SIZE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
@@ -132,6 +134,7 @@ BOOL CScreenSpyDlg::OnInitDialog()
|
||||
{
|
||||
SysMenu->AppendMenu(MF_SEPARATOR);
|
||||
SysMenu->AppendMenu(MF_STRING, IDM_CONTROL, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ(&Y)");
|
||||
SysMenu->AppendMenu(MF_STRING, IDM_FULLSCREEN, "ȫ<EFBFBD><EFBFBD>(&F)");
|
||||
SysMenu->AppendMenu(MF_STRING, IDM_TRACE_CURSOR, "<EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&T)");
|
||||
SysMenu->AppendMenu(MF_STRING, IDM_BLOCK_INPUT, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD>(&L)");
|
||||
SysMenu->AppendMenu(MF_STRING, IDM_SAVEDIB, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(&S)");
|
||||
@@ -148,8 +151,7 @@ BOOL CScreenSpyDlg::OnInitDialog()
|
||||
|
||||
SendNext();
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -166,19 +168,15 @@ VOID CScreenSpyDlg::OnClose()
|
||||
|
||||
VOID CScreenSpyDlg::OnReceiveComplete()
|
||||
{
|
||||
if (m_ContextObject==NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
assert (m_ContextObject);
|
||||
|
||||
switch(m_ContextObject->InDeCompressedBuffer.GetBuffer()[0])
|
||||
{
|
||||
case TOKEN_FIRSTSCREEN:
|
||||
{
|
||||
DrawFirstScreen(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>һ֡ͼ<D6A1><CDBC> һ<><D2BB>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DrawFirstScreen();
|
||||
break;
|
||||
}
|
||||
|
||||
case TOKEN_NEXTSCREEN:
|
||||
{
|
||||
if (m_ContextObject->InDeCompressedBuffer.GetBuffer(0)[1]==ALGORITHM_DIFF)
|
||||
@@ -187,10 +185,10 @@ VOID CScreenSpyDlg::OnReceiveComplete()
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case TOKEN_CLIPBOARD_TEXT: //<2F><><EFBFBD><EFBFBD>
|
||||
case TOKEN_CLIPBOARD_TEXT:
|
||||
{
|
||||
UpdateServerClipboard((char*)m_ContextObject->InDeCompressedBuffer.GetBuffer(1), m_ContextObject->InDeCompressedBuffer.GetBufferLength() - 1);
|
||||
UpdateServerClipboard((char*)m_ContextObject->InDeCompressedBuffer.GetBuffer(1),
|
||||
m_ContextObject->InDeCompressedBuffer.GetBufferLength() - 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -237,7 +235,6 @@ VOID CScreenSpyDlg::DrawNextScreenDiff(void)
|
||||
|
||||
//lodsdָ<64><D6B8><EFBFBD><EFBFBD>ESIָ<49><D6B8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>λ<EFBFBD><CEBB>4<EFBFBD><34><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>EAX<41>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4
|
||||
//movsbָ<62><D6B8><EFBFBD>ֽڴ<D6BD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ͨ<EFBFBD><CDA8>SI<53><49>DI<44><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ַ<EFBFBD><D6B7>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>ַ
|
||||
|
||||
//m_rectBuffer [0002 esi0002 esi000A 000C] [][]edi[][][][][][][][][][][][][][][][][]
|
||||
__asm
|
||||
{
|
||||
@@ -268,8 +265,6 @@ CopyEnd:
|
||||
void CScreenSpyDlg::OnPaint()
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><>Ϊ<EFBFBD><CEAA>ͼ<EFBFBD><CDBC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD> CDialog::OnPaint()
|
||||
|
||||
if (m_bIsFirst)
|
||||
{
|
||||
@@ -310,8 +305,7 @@ VOID CScreenSpyDlg::DrawTipString(CString strString)
|
||||
//ExtTextOut<75><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩһ<E1B9A9><D2BB><EFBFBD>ɹ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ľ<EFBFBD><C4BE>Σ<EFBFBD><CEA3>õ<EFBFBD>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>塢<EFBFBD><E5A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
ExtTextOut(m_hFullDC, 0, 0, ETO_OPAQUE, &Rect, NULL, 0, NULL);
|
||||
|
||||
DrawText (m_hFullDC, strString, -1, &Rect,
|
||||
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
DrawText (m_hFullDC, strString, -1, &Rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
|
||||
SetBkColor(m_hFullDC, BackgroundColor);
|
||||
SetTextColor(m_hFullDC, OldBackgroundColor);
|
||||
@@ -321,7 +315,6 @@ VOID CScreenSpyDlg::DrawTipString(CString strString)
|
||||
void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
|
||||
|
||||
CMenu* SysMenu = GetSystemMenu(FALSE);
|
||||
|
||||
switch (nID)
|
||||
@@ -329,8 +322,13 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
case IDM_CONTROL:
|
||||
{
|
||||
m_bIsCtrl = !m_bIsCtrl;
|
||||
SysMenu->CheckMenuItem(IDM_CONTROL, m_bIsCtrl ? MF_CHECKED : MF_UNCHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
||||
|
||||
SysMenu->CheckMenuItem(IDM_CONTROL, m_bIsCtrl ? MF_CHECKED : MF_UNCHECKED);
|
||||
break;
|
||||
}
|
||||
case IDM_FULLSCREEN: // ȫ<><C8AB>
|
||||
{
|
||||
EnterFullScreen();
|
||||
SysMenu->CheckMenuItem(IDM_FULLSCREEN, MF_CHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
||||
break;
|
||||
}
|
||||
case IDM_SAVEDIB: // <20><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
|
||||
@@ -338,7 +336,6 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
SaveSnapshot();
|
||||
break;
|
||||
}
|
||||
|
||||
case IDM_TRACE_CURSOR: // <20><><EFBFBD>ٱ<EFBFBD><D9B1>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
m_bIsTraceCursor = !m_bIsTraceCursor; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڸı<DAB8><C4B1><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -346,10 +343,8 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
|
||||
// <20>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
OnPaint();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case IDM_BLOCK_INPUT: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>
|
||||
{
|
||||
BOOL bIsChecked = SysMenu->GetMenuState(IDM_BLOCK_INPUT, MF_BYCOMMAND) & MF_CHECKED;
|
||||
@@ -359,21 +354,17 @@ void CScreenSpyDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
bToken[0] = COMMAND_SCREEN_BLOCK_INPUT;
|
||||
bToken[1] = !bIsChecked;
|
||||
m_iocpServer->OnClientPreSending(m_ContextObject, bToken, sizeof(bToken));
|
||||
|
||||
break;
|
||||
}
|
||||
case IDM_GET_CLIPBOARD: //<2F><>ҪClient<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
case IDM_GET_CLIPBOARD: //<2F><>ҪClient<6E>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
BYTE bToken = COMMAND_SCREEN_GET_CLIPBOARD;
|
||||
m_iocpServer->OnClientPreSending(m_ContextObject, &bToken, sizeof(bToken));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case IDM_SET_CLIPBOARD: //<2F><><EFBFBD><EFBFBD>
|
||||
case IDM_SET_CLIPBOARD: //<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
SendServerClipboard();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -421,6 +412,8 @@ BOOL CScreenSpyDlg::PreTranslateMessage(MSG* pMsg)
|
||||
}
|
||||
if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE)
|
||||
return true;
|
||||
if (pMsg->wParam == VK_F11) // <20>˳<EFBFBD>ȫ<EFBFBD><C8AB>
|
||||
LeaveFullScreen();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -453,12 +446,11 @@ BOOL CScreenSpyDlg::SaveSnapshot(void)
|
||||
CFile File;
|
||||
if (!File.Open( Dlg.GetPathName(), CFile::modeWrite | CFile::modeCreate))
|
||||
{
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// BITMAPINFO<46><4F>С
|
||||
//+ (BitMapInfor->bmiHeader.biBitCount > 16 ? 1 : (1 << BitMapInfor->bmiHeader.biBitCount)) * sizeof(RGBQUAD);
|
||||
//+ (BitMapInfor->bmiHeader.biBitCount > 16 ? 1 : (1 << BitMapInfor->bmiHeader.biBitCount)) * sizeof(RGBQUAD)
|
||||
//bmp fjkdfj dkfjkdfj [][][][]
|
||||
int nbmiSize = sizeof(BITMAPINFO);
|
||||
|
||||
@@ -518,3 +510,174 @@ VOID CScreenSpyDlg::SendServerClipboard(void)
|
||||
m_iocpServer->OnClientPreSending(m_ContextObject,(PBYTE)szBuffer, iPacketLength);
|
||||
delete[] szBuffer;
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
SCROLLINFO si = {sizeof(si)};
|
||||
si.fMask = SIF_ALL;
|
||||
GetScrollInfo(SB_HORZ, &si);
|
||||
|
||||
int nPrevPos = si.nPos;
|
||||
switch(nSBCode)
|
||||
{
|
||||
case SB_LEFT:
|
||||
si.nPos = si.nMin;
|
||||
break;
|
||||
case SB_RIGHT:
|
||||
si.nPos = si.nMax;
|
||||
break;
|
||||
case SB_LINELEFT:
|
||||
si.nPos -= 8;
|
||||
break;
|
||||
case SB_LINERIGHT:
|
||||
si.nPos += 8;
|
||||
break;
|
||||
case SB_PAGELEFT:
|
||||
si.nPos -= si.nPage;
|
||||
break;
|
||||
case SB_PAGERIGHT:
|
||||
si.nPos += si.nPage;
|
||||
break;
|
||||
case SB_THUMBTRACK:
|
||||
si.nPos = si.nTrackPos;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
si.fMask = SIF_POS;
|
||||
SetScrollInfo(SB_HORZ, &si, TRUE);
|
||||
if (si.nPos != nPrevPos)
|
||||
{
|
||||
m_ulHScrollPos += si.nPos - nPrevPos;
|
||||
ScrollWindow(nPrevPos - si.nPos, 0, NULL, NULL);
|
||||
}
|
||||
|
||||
CDialog::OnHScroll(nSBCode, nPrevPos, pScrollBar);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
SCROLLINFO si = {sizeof(si)};
|
||||
si.fMask = SIF_ALL;
|
||||
GetScrollInfo(SB_VERT, &si);
|
||||
|
||||
int nPrevPos = si.nPos;
|
||||
switch(nSBCode)
|
||||
{
|
||||
case SB_TOP:
|
||||
si.nPos = si.nMin;
|
||||
break;
|
||||
case SB_BOTTOM:
|
||||
si.nPos = si.nMax;
|
||||
break;
|
||||
case SB_LINEUP:
|
||||
si.nPos -= 8;
|
||||
break;
|
||||
case SB_LINEDOWN:
|
||||
si.nPos += 8;
|
||||
break;
|
||||
case SB_PAGEUP:
|
||||
si.nPos -= si.nPage;
|
||||
break;
|
||||
case SB_PAGEDOWN:
|
||||
si.nPos += si.nPage;
|
||||
break;
|
||||
case SB_THUMBTRACK:
|
||||
si.nPos = si.nTrackPos;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
si.fMask = SIF_POS;
|
||||
SetScrollInfo(SB_VERT, &si, TRUE);
|
||||
if (si.nPos != nPrevPos)
|
||||
{
|
||||
m_ulVScrollPos += si.nPos - nPrevPos;
|
||||
ScrollWindow(0, nPrevPos - si.nPos, NULL, NULL);
|
||||
}
|
||||
|
||||
CDialog::OnVScroll(nSBCode, nPrevPos, pScrollBar);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::EnterFullScreen()
|
||||
{
|
||||
if (!m_bFullScreen)
|
||||
{
|
||||
//get current system resolution
|
||||
int g_iCurScreenWidth = GetSystemMetrics(SM_CXSCREEN);
|
||||
int g_iCurScreenHeight = GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
//for full screen while backplay
|
||||
GetWindowPlacement(&m_struOldWndpl);
|
||||
|
||||
CRect rectWholeDlg;//entire client(including title bar)
|
||||
CRect rectClient;//client area(not including title bar)
|
||||
CRect rectFullScreen;
|
||||
GetWindowRect(&rectWholeDlg);
|
||||
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rectClient);
|
||||
ClientToScreen(&rectClient);
|
||||
|
||||
rectFullScreen.left = rectWholeDlg.left-rectClient.left;
|
||||
rectFullScreen.top = rectWholeDlg.top-rectClient.top;
|
||||
rectFullScreen.right = rectWholeDlg.right+g_iCurScreenWidth - rectClient.right;
|
||||
rectFullScreen.bottom = rectWholeDlg.bottom+g_iCurScreenHeight - rectClient.bottom;
|
||||
//enter into full screen;
|
||||
WINDOWPLACEMENT struWndpl;
|
||||
struWndpl.length = sizeof(WINDOWPLACEMENT);
|
||||
struWndpl.flags = 0;
|
||||
struWndpl.showCmd = SW_SHOWNORMAL;
|
||||
struWndpl.rcNormalPosition = rectFullScreen;
|
||||
SetWindowPlacement(&struWndpl);
|
||||
m_bFullScreen = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::LeaveFullScreen()
|
||||
{
|
||||
if (m_bFullScreen)
|
||||
{
|
||||
SetWindowPlacement(&m_struOldWndpl);
|
||||
CMenu *SysMenu = GetSystemMenu(FALSE);
|
||||
SysMenu->CheckMenuItem(IDM_FULLSCREEN, MF_UNCHECKED); //<2F>˵<EFBFBD><CBB5><EFBFBD>ʽ
|
||||
m_bFullScreen = false;
|
||||
}
|
||||
}
|
||||
|
||||
void CScreenSpyDlg::OnLButtonDown(UINT nFlags, CPoint point)
|
||||
{
|
||||
CDialog::OnLButtonDown(nFlags, point);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnLButtonUp(UINT nFlags, CPoint point)
|
||||
{
|
||||
CDialog::OnLButtonUp(nFlags, point);
|
||||
}
|
||||
|
||||
|
||||
BOOL CScreenSpyDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
|
||||
{
|
||||
return CDialog::OnMouseWheel(nFlags, zDelta, pt);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnMouseMove(UINT nFlags, CPoint point)
|
||||
{
|
||||
CDialog::OnMouseMove(nFlags, point);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnKillFocus(CWnd* pNewWnd)
|
||||
{
|
||||
CDialog::OnKillFocus(pNewWnd);
|
||||
}
|
||||
|
||||
|
||||
void CScreenSpyDlg::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
CDialog::OnSize(nType, cx, cy);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user