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

📄 peeperfrm.cpp

📁 这是个soket的代码不是太实用但是对出学者还是有些帮助的 有需要的可以
💻 CPP
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////
// 远程控制软件-偷窥者  主窗口                                               //
// 日期: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 toolbar\n");
		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 bar\n");
		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_wndCommand\n");		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_wndFile\n");
		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_wndFile\n");
		return -1;		// fail to create
	}

	if (!m_wndDibView.Create(this) ||
		!m_wndDibView.LoadToolBar(IDR_TOOLBAR_DIBVIEW))
	{
		TRACE0("Failed to create toolbar\n");
		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);

⌨️ 快捷键说明

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