PeeperFrm.cpp
上传用户:xztxsm
上传日期:2007-02-12
资源大小:150k
文件大小:29k
- ///////////////////////////////////////////////////////////////////////////////
- // 远程控制软件-偷窥者 主窗口 //
- // 日期:2001/10/02 //
- // 作者:刘东发 //
- // Email:dongfa@yeah.net //
- // http://dongfa.yeah.net //
- // OICQ:5584173 阿东 //
- // 作者声明: //
- // 此部分代码全是作者所写,可以随便传播,但要保持文件的完整性,有问题 //
- // 或者意见请来信,谢谢! //
- ///////////////////////////////////////////////////////////////////////////////
- #include "stdafx.h"
- #include "PeeperClient.h"
- #include "PeeperFrm.h"
- #include "PeeperWnd.h"
- #include "PeeperClientDoc.h"
- #include "../peeperzip.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- CMainClientWnd::CMainClientWnd()
- {
- m_bStretch = FALSE;
- }
- CMainClientWnd::~CMainClientWnd()
- {
- }
- BEGIN_MESSAGE_MAP(CMainClientWnd, CWnd)
- //{{AFX_MSG_MAP(CMainClientWnd)
- ON_WM_PAINT()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- BOOL CMainClientWnd::SetBkBitmap(HBITMAP hBmp, BOOL bStretch)
- {
- if(m_memDC.m_hDC != NULL)
- {
- m_memDC.DeleteDC();
- }
- m_memDC.CreateCompatibleDC(NULL);
- BITMAP bm;
- ::GetObject(hBmp, sizeof(bm), &bm);
- m_szBmp.cx = bm.bmWidth;
- m_szBmp.cy = bm.bmHeight;
- ::SelectObject(m_memDC.m_hDC, hBmp);
- m_bStretch = bStretch;
- return TRUE;
- }
- BOOL CMainClientWnd::PaintBmp()
- {
- CClientDC dc(this);
- if(m_memDC.m_hDC != NULL)
- {
- CRect rect;
- GetClientRect(&rect);
- if(m_bStretch)
- {
- dc.SetStretchBltMode(COLORONCOLOR);
- dc.StretchBlt(rect.left, rect.top, rect.Width(), rect.Height(),
- &m_memDC, 0, 0, m_szBmp.cx, m_szBmp.cy, SRCCOPY);
- }
- else
- {
- int nXn = rect.Width()/m_szBmp.cx;
- int nYn = rect.Height()/m_szBmp.cy;
- if(rect.Width()%m_szBmp.cx > 0)
- nXn ++;
- if(rect.Height()%m_szBmp.cy > 0)
- nYn ++;
- for(int i = 0; i < nXn; i ++)
- {
- for(int j = 0; j < nYn; j ++)
- {
- int w = min(m_szBmp.cx, rect.Width() - i*m_szBmp.cx);
- int h = min(m_szBmp.cy, rect.Height() - j*m_szBmp.cy);
- dc.BitBlt(i*m_szBmp.cx, j*m_szBmp.cy, w, h, &m_memDC, 0, 0, SRCCOPY);
- }
- }
- }
- }
- return TRUE;
- }
- void CMainClientWnd::OnPaint()
- {
- CPaintDC dc(this);
- PaintBmp();
- }
- IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd)
- BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
- //{{AFX_MSG_MAP(CChildFrame)
- ON_WM_GETMINMAXINFO()
- ON_WM_CREATE()
- ON_WM_MDIACTIVATE()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- CChildFrame::CChildFrame()
- {
- }
- CChildFrame::~CChildFrame()
- {
- }
- int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- ModifyStyleEx(WS_EX_CLIENTEDGE, WS_EX_STATICEDGE);
-
- CRect rect;
- GetWindowRect(&rect);
- rect.right += 1;
- rect.bottom += 1;
- MoveWindow(rect);
- return 0;
- }
- BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- return CMDIChildWnd::PreCreateWindow(cs);
- }
- void CChildFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
- {
- lpMMI->ptMaxSize.x = 3200;
- lpMMI->ptMaxSize.y = 2400;
- lpMMI->ptMaxTrackSize.x = 3200;
- lpMMI->ptMaxTrackSize.y = 2400;
-
- CMDIChildWnd::OnGetMinMaxInfo(lpMMI);
- }
- void CChildFrame::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
- {
- CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
- CMainFrame *pMainWnd = (CMainFrame *)AfxGetMainWnd();
- if(pMainWnd)
- {
- pMainWnd->OnFileNew();
- }
- }
- CPeeperBar::CPeeperBar()
- {
- }
- CPeeperBar::~CPeeperBar()
- {
- }
- BEGIN_MESSAGE_MAP(CPeeperBar, CDialogBar)
- //{{AFX_MSG_MAP(CPeeperBar)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
- BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
- //{{AFX_MSG_MAP(CMainFrame)
- ON_WM_CREATE()
- ON_BN_CLICKED(IDC_BTN_COMMAND_EXEC, OnMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_FILE_CLOSESERVER, OnUpdateMenuCommand)
- ON_WM_GETMINMAXINFO()
- ON_BN_CLICKED(IDC_BTN_COMPUTER_EXEC, OnMenuCommand)
- ON_BN_CLICKED(IDC_BTN_FILE_EXEC, OnMenuCommand)
- ON_BN_CLICKED(IDC_BTN_FILE_SOURCE, OnMenuCommand)
- ON_BN_CLICKED(IDC_BTN_FILE_TARGET, OnMenuCommand)
- ON_CBN_SELCHANGE(IDC_COMBO_FILE_TYPE, OnMenuCommand)
- ON_COMMAND(ID_FILE_CLOSESERVER, OnMenuCommand)
- ON_COMMAND(ID_VIEW_SEND, OnMenuCommand)
- ON_COMMAND(ID_FILE_MANAGE, OnMenuCommand)
- ON_COMMAND(ID_VIEW_COMPUTER, OnMenuCommand)
- ON_COMMAND(ID_TOOL_DIBVIEW_FULL, OnMenuCommand)
- ON_COMMAND(ID_OPTION_PAUSE, OnMenuCommand)
- ON_COMMAND(ID_OPTION_MOUSE_MOVE, OnMenuCommand)
- ON_COMMAND(ID_OPTION_MOUSE_LBUTTON, OnMenuCommand)
- ON_COMMAND(ID_OPTION_MOUSE_RBUTTON, OnMenuCommand)
- ON_COMMAND(ID_OPTION_MOUSE_LDBLCLK, OnMenuCommand)
- ON_COMMAND(ID_OPTION_MOUSE_RDBLCLK, OnMenuCommand)
- ON_COMMAND(ID_OPTION_KEY, OnMenuCommand)
- ON_COMMAND(ID_OPTION_DIB, OnMenuCommand)
- ON_COMMAND(ID_OPTION_1BITS, OnMenuCommand)
- ON_COMMAND(ID_OPTION_4BITS, OnMenuCommand)
- ON_COMMAND(ID_OPTION_8BITS, OnMenuCommand)
- ON_COMMAND(ID_OPTION_24BITS, OnMenuCommand)
- ON_COMMAND(ID_OPTION_NOZIP, OnMenuCommand)
- ON_COMMAND(ID_OPTION_LZ77, OnMenuCommand)
- ON_COMMAND(ID_OPTION_LZW, OnMenuCommand)
- // ON_COMMAND(ID_OPTION_JPEG, OnMenuCommand)
- ON_COMMAND(ID_OPTION_LZSS, OnMenuCommand)
- ON_COMMAND(ID_OPTION_ARI, OnMenuCommand)
- ON_COMMAND(ID_HELP_REGISTER, OnMenuCommand)
- ON_COMMAND(ID_HELP_HELP, OnMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_VIEW_SEND, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_FILE_MANAGE, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_VIEW_COMPUTER, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_TOOL_DIBVIEW_FULL, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_PAUSE, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_MOUSE_MOVE, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_MOUSE_LBUTTON, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_MOUSE_RBUTTON, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_MOUSE_LDBLCLK, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_MOUSE_RDBLCLK, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_KEY, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_DIB, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_1BITS, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_4BITS, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_8BITS, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_24BITS, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_NOZIP, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_LZ77, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_LZW, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_JPEG, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_LZSS, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_OPTION_ARI, OnUpdateMenuCommand)
- //信息条
- ON_UPDATE_COMMAND_UI(ID_STATUS_CONN_INFO, OnUpdateMenuCommand)
- ON_UPDATE_COMMAND_UI(ID_STATUS_TIME, OnUpdateMenuCommand)
- ON_WM_DRAWITEM()
- ON_WM_MEASUREITEM()
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- static UINT indicators[] =
- {
- ID_SEPARATOR,
- ID_STATUS_CONN_INFO,
- ID_STATUS_TIME,
- };
- CMainFrame::CMainFrame()
- {
- m_bIsFullScreen = FALSE;
- }
- CMainFrame::~CMainFrame()
- {
- }
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- if (!m_wndToolBar.Create(this) ||
- !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
- {
- TRACE0("Failed to create toolbarn");
- return -1; // fail to create
- }
- m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT);
- if (!m_wndStatusBar.Create(this) ||
- !m_wndStatusBar.SetIndicators(indicators,
- sizeof(indicators)/sizeof(UINT)))
- {
- TRACE0("Failed to create status barn");
- return -1; // fail to create
- }
- //改变信息条的区域
- UINT nID = 0;
- UINT nStyle = 0;
- int cxWidth = 0;
- m_wndStatusBar.GetPaneInfo(1, nID, nStyle, cxWidth);
- m_wndStatusBar.SetPaneInfo(1, nID, nStyle, 200);
- UINT nStyle1 = 0;
- m_wndStatusBar.GetPaneInfo(0, nID, nStyle1, cxWidth);
- m_wndStatusBar.SetPaneInfo(0, nID, nStyle, 200);
- m_wndStatusBar.GetPaneInfo(2, nID, nStyle, cxWidth);
- m_wndStatusBar.SetPaneInfo(2, nID, nStyle | SBPS_STRETCH, 0);
- m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
- CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
- if (!m_wndCommand.Create(this, IDD_DLGBAR_COMMAND,
CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
IDD_DLGBAR_COMMAND))
{
TRACE0("Failed to create dialog bar m_wndCommandn");
return -1; // fail to create
}
- if (!m_wndFile.Create(this, IDD_DLGBAR_FILE,
- CBRS_BOTTOM | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
- IDD_DLGBAR_FILE))
- {
- TRACE0("Failed to create dialog bar m_wndFilen");
- return -1; // fail to create
- }
- if (!m_wndComputer.Create(this, IDD_DLGBAR_COMPUTER,
- CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
- IDD_DLGBAR_COMPUTER))
- {
- TRACE0("Failed to create dialog bar m_wndFilen");
- return -1; // fail to create
- }
- if (!m_wndDibView.Create(this) ||
- !m_wndDibView.LoadToolBar(IDR_TOOLBAR_DIBVIEW))
- {
- TRACE0("Failed to create toolbarn");
- return -1; // fail to create
- }
- m_wndDibView.ModifyStyle(0, TBSTYLE_FLAT);
-
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
- m_wndCommand.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
m_wndFile.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
- m_wndComputer.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
- m_wndDibView.EnableDocking(CBRS_ALIGN_ANY);
- EnableDocking(CBRS_ALIGN_ANY);
- DockControlBar(&m_wndToolBar);
- DockControlBar(&m_wndFile, AFX_IDW_DOCKBAR_BOTTOM);
- RecalcLayout();
- CRect rcMain;
- CRect rcTool;
- GetWindowRect(&rcMain);
- m_wndToolBar.GetWindowRect(&rcTool);
- rcMain.top = rcTool.top;
- rcMain.left = rcTool.right;
- rcMain.bottom = rcMain.top + rcTool.Height();
- DockControlBar(&m_wndCommand, AFX_IDW_DOCKBAR_TOP, &rcMain);
- RecalcLayout();
- GetWindowRect(&rcMain);
- m_wndCommand.GetWindowRect(&rcTool);
- rcMain.top = rcTool.top;
- rcMain.left = rcTool.right;
- rcMain.bottom = rcMain.top + rcTool.Height();
- DockControlBar(&m_wndComputer, AFX_IDW_DOCKBAR_TOP, &rcMain);
- RecalcLayout();
- m_wndToolBar.SetWindowText(_T("主工具条"));
- m_wndCommand.SetWindowText(_T("命令工具条"));
- m_wndFile.SetWindowText(_T("文件操作工具条"));
- m_wndComputer.SetWindowText(_T("电脑控制工具条"));
- ShowControlBar(&m_wndCommand, FALSE, FALSE);
- ShowControlBar(&m_wndComputer, FALSE, FALSE);
- ShowControlBar(&m_wndFile, FALSE, FALSE);
- ShowControlBar(&m_wndDibView, FALSE, FALSE);
- //init some data
- CComboBox *pCombo = (CComboBox *)(m_wndCommand.GetDlgItem(IDC_COMBO_COMMAND_TYPE));
- if(pCombo)
- {
- int nItem = pCombo->AddString(_T("消息"));
- pCombo->SetItemData(nItem, PL_MSG);
- nItem = pCombo->AddString(_T("命令"));
- pCombo->SetItemData(nItem, PL_FUNC_EXEC);
- pCombo->SetCurSel(0);
- }
- pCombo = (CComboBox *)(m_wndFile.GetDlgItem(IDC_COMBO_FILE_TYPE));
- if(pCombo)
- {
- int nItem = pCombo->AddString(_T("拷贝到远程"));
- pCombo->SetItemData(nItem, PL_FUNC_FILE_COPY_S);
- nItem = pCombo->AddString(_T("拷贝到本地"));
- pCombo->SetItemData(nItem, PL_FUNC_FILE_COPY_C);
- nItem = pCombo->AddString(_T("删除文件"));
- pCombo->SetItemData(nItem, PL_FUNC_FILE_DELETE);
- nItem = pCombo->AddString(_T("移动文件"));
- pCombo->SetItemData(nItem, PL_FUNC_FILE_MOVE);
- pCombo->SetCurSel(0);
- }
- pCombo = (CComboBox *)(m_wndComputer.GetDlgItem(IDC_COMBO_COMPUTER_TYPE));
- if(pCombo)
- {
- int nItem = pCombo->AddString(_T("注销"));
- pCombo->SetItemData(nItem, PL_FUNC_EXITWIN+0);
- nItem = pCombo->AddString(_T("重启"));
- pCombo->SetItemData(nItem, PL_FUNC_EXITWIN+1);
- nItem = pCombo->AddString(_T("关机"));
- pCombo->SetItemData(nItem, PL_FUNC_EXITWIN+2);
- nItem = pCombo->AddString(_T("锁定"));
- pCombo->SetItemData(nItem, PL_FUNC_EXITWIN+3);
- nItem = pCombo->AddString(_T("解锁"));
- pCombo->SetItemData(nItem, PL_FUNC_EXITWIN+4);
- pCombo->SetCurSel(0);
- }
- //设置背景,通过一个图像
- m_wndClientWnd.SubclassWindow(m_hWndMDIClient);
- HBITMAP hBmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_MAINCLIENT_BK));
- m_wndClientWnd.SetBkBitmap(hBmp, FALSE);
- ::DeleteObject(hBmp);
- //设置自己的风格菜单
- m_hPeeperMenu.SetBkImage(IDB_BITMAP_MENU_BK);
- // //设置系统菜单
- // m_hPeeperSysMenu.AttachMenu(GetSystemMenu(FALSE)->GetSafeHmenu(), 0, CSize(0, 0));
- #if 0
- HGLOBAL hDib = ::PL_ReadDataFromFile(_T("d:\test.doc"));
- #endif
- #if 0 //为了C_LZSS测试
- HGLOBAL hUnZip = PL_LZSS_Zip(hDib);
- HGLOBAL hZip = PL_LZSS_UnZip(hUnZip);
- #endif //为了C_LZSS测试
- #if 0//为了C_ARI测试
- HGLOBAL hUnZip = PL_ARI_Zip(hDib);
- HGLOBAL hZip = PL_ARI_UnZip(hUnZip);
- #endif//为了C_ARI测试
- #if 0 //为了LZ77测试
- HGLOBAL hZip = ::PL_LZ77_Zip(hDib);
- HGLOBAL hUnZip = ::PL_LZ77_UnZip(hZip);
- #endif
- #if 0 // 为了LZW测试
- HGLOBAL hZip = PL_LZW_Zip(hDib);
- HGLOBAL hUnZip = PL_LZW_UnZip(hZip);
- PL_WriteDataToFile(_T("d:\test_lzw.doc"), hUnZip);
- #endif
- return 0;
- }
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- return CMDIFrameWnd::PreCreateWindow(cs);
- }
- BOOL CMainFrame::PeeperMenuAttach(HMENU hMenu)
- {
- BOOL bRet = m_hPeeperMenu.AttachMenu(hMenu, IDR_MAINFRAME, CSize(16, 15));
- m_hPeeperMenu.AddToolBar(IDR_TOOLBAR_DIBVIEW, CSize(16, 15));
- return bRet;
- }
- BOOL CMainFrame::PeeperClientMenuAttach(HMENU hMenu)
- {
- return m_hPeeperClientMenu.AttachMenu(hMenu, IDR_MAINFRAME, CSize(16, 15));
- }
- int CMainFrame::GetClientCount()
- {
- int nCount = 0;
- POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition();
- while(pos)
- {
- CDocTemplate* pTemplate = (CDocTemplate*)AfxGetApp()->GetNextDocTemplate(pos);
- POSITION pos2 = pTemplate->GetFirstDocPosition();
- while(pos2)
- {
- CDocument * pDocument = pTemplate->GetNextDoc(pos2);
- if(pDocument)
- {
- nCount ++;
- }
- }
- break ;
- }
- return nCount;
- }
- CChildFrame *CMainFrame::GetCurFrame()
- {
- CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
- if(pFrame)
- {
- return (CChildFrame *)pFrame->GetActiveFrame();
- }
- return NULL;
- }
- CPeeperWnd *CMainFrame::GetCurPeeperWnd()
- {
- CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
- if(pFrame)
- {
- CChildFrame *pChild = (CChildFrame *)pFrame->GetActiveFrame();
- if(pChild)
- {
- return (CPeeperWnd *)pChild->GetActiveView();
- }
- }
- return NULL;
- }
- CPeeperClientDoc *CMainFrame::GetCurPeeperDoc()
- {
- CMainFrame *pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
- if(pFrame)
- {
- CChildFrame *pChild = (CChildFrame *)pFrame->GetActiveFrame();
- if(pChild)
- {
- return (CPeeperClientDoc *)pChild->GetActiveDocument();
- }
- }
- return NULL;
- }
- void CMainFrame::OnFileClose()
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- if(!pPeeperWnd)
- {
- ShowControlBar(&m_wndCommand, FALSE, FALSE);
- ShowControlBar(&m_wndComputer, FALSE, FALSE);
- ShowControlBar(&m_wndFile, FALSE, FALSE);
- ShowControlBar(&m_wndDibView, FALSE, FALSE);
- RecalcLayout();
- }
- }
- void CMainFrame::OnFileNew()
- {
- return ;
- }
- void CMainFrame::OnMenuCommand()
- {
- const MSG *pMsg = CWnd::GetCurrentMessage();
- if(pMsg != NULL)
- {
- int nMenuID = (int)(LOWORD(pMsg->wParam));
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- switch(nMenuID)
- {
- case ID_VIEW_SEND:
- {
- ShowControlBar(&m_wndCommand, !(m_wndCommand.IsWindowVisible()), TRUE);
- }
- break ;
- case ID_FILE_MANAGE:
- {
- ShowControlBar(&m_wndFile, !(m_wndFile.IsWindowVisible()), TRUE);
- }
- break ;
- case ID_VIEW_COMPUTER:
- {
- ShowControlBar(&m_wndComputer, !(m_wndComputer.IsWindowVisible()), TRUE);
- }
- break ;
- case ID_TOOL_DIBVIEW_FULL:
- {
- ShowControlBar(&m_wndDibView, !(m_wndDibView.IsWindowVisible()), TRUE);
- OnFullScreen();
- }
- break ;
- case ID_FILE_CLOSESERVER:
- {
- if(pPeeperWnd && pPeeperWnd->GetState())
- {
- pPeeperWnd->CloseServer();
- }
- }
- break ;
- case ID_OPTION_PAUSE:
- {
- if(pPeeperWnd)
- {
- BOOL bPause = pPeeperWnd->IsPause();
- if(bPause)
- {
- pPeeperWnd->Resume();
- }
- else
- {
- pPeeperWnd->Pause();
- }
- }
- }
- break ;
- case ID_OPTION_MOUSE_MOVE:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_MOVE);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_MOUSE_MOVE, !bOld);
- }
- }
- break ;
- case ID_OPTION_MOUSE_LBUTTON:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_LBUTTON);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_MOUSE_LBUTTON, !bOld);
- }
- }
- break ;
- case ID_OPTION_MOUSE_RBUTTON:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_RBUTTON);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_MOUSE_RBUTTON, !bOld);
- }
- }
- break ;
- case ID_OPTION_MOUSE_LDBLCLK:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_LDBLCLK);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_MOUSE_LDBLCLK, !bOld);
- }
- }
- break ;
- case ID_OPTION_MOUSE_RDBLCLK:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_RDBLCLK);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_MOUSE_RDBLCLK, !bOld);
- }
- }
- break ;
- case ID_OPTION_KEY:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_KEY);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_KEY, !bOld);
- }
- }
- break ;
- case ID_OPTION_DIB:
- {
- if(pPeeperWnd)
- {
- BOOL bOld = pPeeperWnd->GetEnableFlag(PL_ENABLE_DIB);
- pPeeperWnd->SetEnableFlag(PL_ENABLE_DIB, !bOld);
- }
- }
- break ;
- case ID_OPTION_1BITS:
- case ID_OPTION_4BITS:
- case ID_OPTION_8BITS:
- case ID_OPTION_24BITS:
- {
- if(pPeeperWnd)
- {
- pPeeperWnd->SetColorType(PL_ColorType(nMenuID - ID_OPTION_1BITS));
- }
- }
- break ;
- case ID_OPTION_NOZIP:
- case ID_OPTION_LZ77:
- case ID_OPTION_LZW:
- case ID_OPTION_JPEG:
- case ID_OPTION_LZSS:
- case ID_OPTION_ARI:
- {
- if(pPeeperWnd)
- {
- pPeeperWnd->SetZipType(PL_ZipType(nMenuID - ID_OPTION_NOZIP));
- }
- }
- break ;
- case IDC_BTN_COMMAND_EXEC:
- {
- OnExecCommand();
- }
- break ;
- case IDC_BTN_COMPUTER_EXEC:
- {
- OnExecComputer();
- }
- break ;
- case IDC_BTN_FILE_EXEC:
- {
- OnExecFile();
- }
- break ;
- case IDC_BTN_FILE_SOURCE:
- {
- }
- break ;
- case IDC_BTN_FILE_TARGET:
- {
- }
- break ;
- case IDC_COMBO_FILE_TYPE:
- {
- ;
- }
- break ;
- case ID_HELP_HELP:
- {
- TCHAR chApp[255];
- memset(chApp, 0, sizeof(TCHAR)*255);
- GetModuleFileName(NULL, chApp, 255);
- CString strApp = CString(chApp);
- int nPos = strApp.ReverseFind(_T('\'));
- if(nPos > 0)
- {
- strApp = strApp.Left(nPos);
- }
- ::ShellExecute(NULL, "open", "Readme.txt", NULL, strApp,
- SW_SHOWNORMAL);
- }
- break ;
- case ID_HELP_REGISTER:
- {
- CRegisterDlg dlgReg;
- dlgReg.DoModal();
- dlgReg.m_strUserName;
- dlgReg.m_strCode;
- }
- break ;
- default :
- break ;
- }
- }
- }
- void CMainFrame::OnUpdateMenuCommand(CCmdUI* pCmdUI)
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- switch(pCmdUI->m_nID)
- {
- case ID_VIEW_SEND:
- {
- if(!pPeeperWnd)
- {
- pCmdUI->Enable(FALSE);
- }
- pCmdUI->SetCheck(m_wndCommand.IsWindowVisible());
- }
- break ;
- case ID_FILE_MANAGE:
- {
- if(!pPeeperWnd)
- {
- pCmdUI->Enable(FALSE);
- }
- pCmdUI->SetCheck(m_wndFile.IsWindowVisible());
- }
- break ;
- case ID_VIEW_COMPUTER:
- {
- if(!pPeeperWnd)
- {
- pCmdUI->Enable(FALSE);
- }
- pCmdUI->SetCheck(m_wndComputer.IsWindowVisible());
- }
- break ;
- case ID_TOOL_DIBVIEW_FULL:
- {
- if(!pPeeperWnd)
- {
- pCmdUI->Enable(FALSE);
- ShowControlBar(&m_wndDibView, FALSE, FALSE);
- }
- else
- {
- pCmdUI->Enable(TRUE);
- }
- }
- break ;
- case ID_FILE_CLOSESERVER:
- {
- pCmdUI->Enable((pPeeperWnd && pPeeperWnd->GetState()));
- }
- break ;
- case ID_OPTION_PAUSE:
- {
- if(pPeeperWnd)
- {
- BOOL bPause = pPeeperWnd->IsPause();
- pCmdUI->SetCheck(!bPause);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_MOUSE_MOVE:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_MOVE);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_MOUSE_LBUTTON:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_LBUTTON);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_MOUSE_RBUTTON:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_RBUTTON);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_MOUSE_LDBLCLK:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_LDBLCLK);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_MOUSE_RDBLCLK:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_MOUSE_RDBLCLK);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_KEY:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_KEY);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_DIB:
- {
- if(pPeeperWnd)
- {
- BOOL bSet = pPeeperWnd->GetEnableFlag(PL_ENABLE_DIB);
- pCmdUI->SetCheck(bSet);
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_1BITS:
- case ID_OPTION_4BITS:
- case ID_OPTION_8BITS:
- case ID_OPTION_24BITS:
- {
- if(pPeeperWnd)
- {
- if((UINT)(pPeeperWnd->GetColorType()+ID_OPTION_1BITS) == pCmdUI->m_nID)
- {
- pCmdUI->SetRadio(TRUE);
- }
- else
- {
- pCmdUI->SetRadio(FALSE);
- }
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_OPTION_NOZIP:
- case ID_OPTION_LZ77:
- case ID_OPTION_LZW:
- case ID_OPTION_JPEG:
- case ID_OPTION_LZSS:
- case ID_OPTION_ARI:
- {
- if(pPeeperWnd)
- {
- if((UINT)(pPeeperWnd->GetZipType()+ID_OPTION_NOZIP) == pCmdUI->m_nID)
- {
- pCmdUI->SetRadio(TRUE);
- }
- else
- {
- pCmdUI->SetRadio(FALSE);
- }
- }
- else
- {
- pCmdUI->Enable(FALSE);
- }
- }
- break ;
- case ID_STATUS_CONN_INFO:
- {
- CString strInfo;
- if(pPeeperWnd)
- {
- strInfo = pPeeperWnd->GetClientInfo();
- }
- else
- {
- strInfo.LoadString(ID_STATUS_CONN_INFO);
- }
- m_wndStatusBar.SetPaneText(1, strInfo);
- }
- break ;
- case ID_STATUS_TIME:
- {
- CString strInfo;
- CString str;
- strInfo.LoadString(ID_STATUS_TIME);
- if(pPeeperWnd)
- {
- UINT nTime = pPeeperWnd->GetConnectTime();
- str.Format(strInfo, nTime/60, nTime%60);
- }
- else
- {
- str.Format(strInfo, 0, 0);
- }
- m_wndStatusBar.SetPaneText(2, str);
- }
- break ;
- default :
- break ;
- }
- }
- void CMainFrame::OnFullScreen()
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- CChildFrame *pFrame = GetCurFrame();
- if(pPeeperWnd && pFrame)
- {
- SIZE sz = ::PL_GetScreenSize();
- CToolBarCtrl &bcCtrl = m_wndDibView.GetToolBarCtrl();
- BOOL bCheck = bcCtrl.IsButtonChecked(ID_TOOL_DIBVIEW_FULL);
- bcCtrl.CheckButton(ID_TOOL_DIBVIEW_FULL, !bCheck);
- if(!bCheck)
- {
- if(pFrame->IsZoomed())
- {
- m_nOldCmdShow = SW_SHOWMAXIMIZED;
- }
- else
- {
- m_nOldCmdShow = SW_SHOWNORMAL;
- }
- pFrame->ShowWindow(SW_SHOWMAXIMIZED);
- ShowControlBar(&m_wndDibView, TRUE, FALSE);
- FloatControlBar(&m_wndDibView, CPoint(sz.cx - 60, 10));
- RecalcLayout(); // must
- CRect rc;
- CRect rect;
- GetWindowRect(&m_rcOldRect);
- pPeeperWnd->GetWindowRect(&rc);
- rect.left = m_rcOldRect.left - rc.left - 2;
- rect.top = m_rcOldRect.top - rc.top - 2;
- rect.right = sz.cx + m_rcOldRect.right - rc.right + 2;
- rect.bottom = sz.cy + m_rcOldRect.bottom - rc.bottom + 2;
-
- MoveWindow(rect);
- m_bIsFullScreen = TRUE;
- }
- else
- {
- ShowControlBar(&m_wndDibView, FALSE, FALSE);
- pFrame->ShowWindow(m_nOldCmdShow);
- DockControlBar(&m_wndDibView);
- MoveWindow(m_rcOldRect);
- m_bIsFullScreen = FALSE;
- }
- }
- }
- void CMainFrame::OnExecCommand()
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- if(pPeeperWnd)
- {
- char chData[1024];
- ZeroMemory(chData, 1024);
- m_wndCommand.GetDlgItemText(IDC_EDIT_COMMAND_INPUT, chData, 1024);
- CComboBox *pCombo = (CComboBox *)(m_wndCommand.GetDlgItem(IDC_COMBO_COMMAND_TYPE));
- if(pCombo)
- {
- int nCur = pCombo->GetCurSel();
- if(nCur >= 0)
- {
- int nType = pCombo->GetItemData(nCur);
- switch(nType)
- {
- case PL_MSG:
- {
- pPeeperWnd->T_SendMsg(chData, 0);
- }
- break ;
- case PL_FUNC_EXEC:
- {
- pPeeperWnd->T_RunCommand(chData);
- }
- break ;
- default :
- break ;
- }
- }
- }
- }
- }
- void CMainFrame::OnExecComputer()
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- if(pPeeperWnd)
- {
- CComboBox *pCombo = (CComboBox *)(m_wndComputer.GetDlgItem(IDC_COMBO_COMPUTER_TYPE));
- if(pCombo)
- {
- int nCur = pCombo->GetCurSel();
- if(nCur >= 0)
- {
- int nType = pCombo->GetItemData(nCur);
- switch(nType)
- {
- case PL_FUNC_EXITWIN+0:
- {
- pPeeperWnd->T_ExitWindow(EWX_FORCE | EWX_LOGOFF);
- }
- break ;
- case PL_FUNC_EXITWIN+1:
- {
- pPeeperWnd->T_ExitWindow(EWX_FORCE | EWX_REBOOT);
- }
- break ;
- case PL_FUNC_EXITWIN+2:
- {
- pPeeperWnd->T_ExitWindow(EWX_FORCE | EWX_SHUTDOWN);
- }
- break ;
- case PL_FUNC_EXITWIN+3:
- {
- pPeeperWnd->T_LockDesktop(TRUE);
- }
- break ;
- case PL_FUNC_EXITWIN+4:
- {
- pPeeperWnd->T_LockDesktop(FALSE);
- }
- break ;
- default :
- break ;
- }
- }
- }
- }
- }
- void CMainFrame::OnExecFile()
- {
- CPeeperWnd *pPeeperWnd = GetCurPeeperWnd();
- if(pPeeperWnd)
- {
- char chFile1[512];
- char chFile2[512];
- ZeroMemory(chFile1, 512);
- ZeroMemory(chFile2, 512);
- m_wndFile.GetDlgItemText(IDC_EDIT_FILE_SOURCE, chFile1, 512);
- m_wndFile.GetDlgItemText(IDC_EDIT_FILE_TARGET, chFile2, 512);
- CComboBox *pCombo = (CComboBox *)(m_wndFile.GetDlgItem(IDC_COMBO_FILE_TYPE));
- if(pCombo)
- {
- int nCur = pCombo->GetCurSel();
- if(nCur >= 0)
- {
- int nType = pCombo->GetItemData(nCur);
- switch(nType)
- {
- case PL_FUNC_FILE_COPY_S:
- {
- pPeeperWnd->T_CopyFileToRemote(chFile1, chFile2, NULL);
- }
- break ;
- case PL_FUNC_FILE_COPY_C:
- {
- pPeeperWnd->T_CopyFileFromRemote(chFile1, chFile2, NULL);
- }
- break ;
- case PL_FUNC_FILE_DELETE:
- {
- pPeeperWnd->T_DeleteFile(chFile1);
- }
- break ;
- case PL_FUNC_FILE_MOVE:
- {
- pPeeperWnd->T_MoveFile(chFile1, chFile2);
- }
- break ;
- default :
- break ;
- }
- }
- }
- }
- }
- BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
- {
- if(pMsg->message == WM_KEYDOWN)
- {
- if(pMsg->wParam == VK_RETURN)
- {
- CWnd *pFoucs = GetFocus();
- if(pFoucs == m_wndCommand.GetDlgItem(IDC_EDIT_COMMAND_INPUT) ||
- pFoucs == m_wndCommand.GetDlgItem(IDC_COMBO_COMMAND_TYPE))
- {
- OnExecCommand();
- }
- else if(pFoucs == m_wndComputer.GetDlgItem(IDC_COMBO_COMPUTER_TYPE))
- {
- OnExecComputer();
- }
- else if(pFoucs == m_wndFile.GetDlgItem(IDC_EDIT_FILE_SOURCE) ||
- pFoucs == m_wndFile.GetDlgItem(IDC_EDIT_FILE_TARGET) ||
- pFoucs == m_wndFile.GetDlgItem(IDC_COMBO_FILE_TYPE))
- {
- OnExecFile();
- }
- }
- else if(m_bIsFullScreen && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_F11))
- {
- OnFullScreen();
- }
- else if(!m_bIsFullScreen && pMsg->wParam == VK_F11)
- {
- OnFullScreen();
- }
- }
- return CMDIFrameWnd::PreTranslateMessage(pMsg);
- }
- void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
- {
- lpMMI->ptMaxSize.x = 3200;
- lpMMI->ptMaxSize.y = 2400;
- lpMMI->ptMaxTrackSize.x = 3200;
- lpMMI->ptMaxTrackSize.y = 2400;
- CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);
- }
- void CMainFrame::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
- {
- if(lpDrawItemStruct->CtlType == ODT_MENU)
- {
- m_hPeeperMenu.DrawItem(lpDrawItemStruct);
- return ;
- }
- CMDIFrameWnd::OnDrawItem(nIDCtl, lpDrawItemStruct);
- }
- void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
- {
- if(lpMeasureItemStruct->CtlType == ODT_MENU)
- {
- m_hPeeperMenu.MeasureItem(lpMeasureItemStruct);
- return ;
- }
- CMDIFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
- }