📄 taskpane.cpp
字号:
//*******************************************************************************
// COPYRIGHT NOTES
// ---------------
// This is a sample for BCGControlBar Library Professional Edition
// Copyright (C) 1998-2007 BCGSoft Ltd.
// All rights reserved.
//
// This source code can be used, distributed or modified
// only under terms and conditions
// of the accompanying license agreement.
//*******************************************************************************
//
// TaskPane.cpp : implementation of the CTaskPane class
//
#include "stdafx.h"
#include "NCSimulaSys.h"
#include "TaskPane.h"
#include "NCFileSocket.h"
#include "NCMessage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
/////////////////////////////////////////////////////////////////////////////
// CTaskPane
BEGIN_MESSAGE_MAP(CTaskPane, CBCGPTasksPane)
//{{AFX_MSG_MAP(CTaskPane)
ON_WM_CREATE()
ON_REGISTERED_MESSAGE(BCGM_GRID_ITEM_DBLCLICK, OnDBClickGridCtrlFileServerFile)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTaskPane construction/destruction
CTaskPane::CTaskPane()
{
m_nDocumentsGroup = -1;
// m_nUserColorGroup = -1;
// m_nUserColorTask = -1;
// TODO: add one-time construction code here
}
CTaskPane::~CTaskPane()
{
}
//***************************************************************************
//***************************************************************************
/////////////////////////////////////////////////////////////////////////////
// CTaskPane message handlers
int CTaskPane::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CBCGPTasksPane::OnCreate(lpCreateStruct) == -1)
return -1;
SetIconsList (IDB_TASKS, 16); //设置图标列表.
EnableNavigationToolbar (TRUE); //设置导航栏.
EnableWrapLabels (TRUE);
EnableOffsetCustomControls (FALSE);
//*************************************************************
// 第一页内容.
// Add group and list: 添加组及其成员:
int nGroup = AddGroup (0, _T("Open a document"), FALSE, TRUE);
AddTask (nGroup, _T("New NC Programme"), 0, ID_FILE_NEW);
AddTask (nGroup, _T("Open Local NC Programme..."), 0, ID_FILE_OPEN);
AddSeparator (nGroup);
//*************************************************************
// 第二页内容.
AddPage(_T("文件服务器"));
nGroup = AddGroup(1, _T(""), FALSE, TRUE);
AddTask(nGroup, _T("登录到文件服务器"), 1, ID_LOGON_FILESERVER);
AddTask(nGroup, _T("注销登录到文件服务器."), 2, ID_LOGOUT_FILESERVER);
nGroup = AddGroup(1, _T(""), FALSE, FALSE);
m_wndGridCtrl_ServerFile.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_GRIDCTRL_FILESERVER_FILES);
m_wndGridCtrl_ServerFile.InsertColumn(0,_T("名称"),86);
m_wndGridCtrl_ServerFile.InsertColumn(1,_T("大小"),60);
m_wndGridCtrl_ServerFile.InsertColumn(2,_T("类型"),60);
m_wndGridCtrl_ServerFile.SetReadOnly(true);
m_wndGridCtrl_ServerFile.SetWholeRowSel(true);
m_wndGridCtrl_ServerFile.EnableDragHeaderItems(false);
AddWindow(nGroup, m_wndGridCtrl_ServerFile.GetSafeHwnd(), 320);
if (!m_wndToolbar_ServerFile.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolbar_ServerFile.LoadToolBar(IDR_TOOLBAR_TASKPANE_SERVERFILE))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
AddWindow(nGroup, m_wndToolbar_ServerFile.GetSafeHwnd(), 22);
// nGroup = AddGroup(1, _T("Infomation"), TRUE, TRUE);
//*************************************************************
// 第三页内容.
AddPage(_T("网络同步仿真"));
nGroup = AddGroup(2, _T(""),FALSE, TRUE);
AddTask(nGroup, _T("登录到同步仿真服务器"), 1, ID_LOGON_SYNSIMULASERVER);
AddTask(nGroup, _T("注销登录到同步仿真服务器"), 2, ID_LOGOUT_SYNSIMULASERVER);
nGroup = AddGroup(2, _T(""), FALSE, FALSE);
m_wndGridCtrl_SynSimulaServer_ClientList.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_SYNSIMULASERVER_CLIENT);
m_wndGridCtrl_SynSimulaServer_ClientList.InsertColumn(0,_T(""),32);
m_wndGridCtrl_SynSimulaServer_ClientList.InsertColumn(1,_T("客户端名称"),168,-1);
m_wndGridCtrl_SynSimulaServer_ClientList.EnableDragHeaderItems(false);
AddWindow(nGroup, m_wndGridCtrl_SynSimulaServer_ClientList.GetSafeHwnd(), 320);
AddTask(nGroup, _T("刷新"), 3, ID_REFLESH_SYNSIMULA_CLIENTLIST);
AddTask(nGroup, _T("开始同步仿真"), 4, ID_START_SYNSIMULA);
return 0;
}
void CTaskPane::UpdateMRUFilesList ()
{
/* AddMRUFilesList (m_nDocumentsGroup);
RedrawWindow ();*/
}
void CTaskPane::UpdateToolbar ()
{
// m_wndToolBar.RedrawWindow ();
}
BOOL CTaskPane::CreateEditControl()
{
/* CRect rectDummy (0, 0, 0, 0);
DWORD dwEditStyle = WS_CHILD | WS_VISIBLE |
ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_MULTILINE;
m_Font.CreateStockObject (DEFAULT_GUI_FONT);
if (!m_wndEdit.Create (dwEditStyle, rectDummy, this, (UINT)-1))
{
TRACE0("Failed to create the edit window\n");
return FALSE;
}
m_wndEdit.ModifyStyleEx (0, WS_EX_CLIENTEDGE);
m_wndEdit.SetFont (&m_Font);
m_wndEdit.SetWindowText(
_T("This is the standard multiline Edit Box.\r\nHere you can type your text."));*/
return TRUE;
}
LRESULT CTaskPane::OnDBClickGridCtrlFileServerFile(WPARAM w, LPARAM l)
{
// TODO: 在此添加控件通知处理程序代码
// 参数l传递过来的是CBCGPGridItem*,因此要根据此获得当前行和当前控件的指针.
CBCGPGridItem* pItem = (CBCGPGridItem*)l;
CBCGPGridRow* pRow = pItem->GetParentRow();
CBCGPGridCtrl* pGridCtrl = pRow->GetOwnerList();
// 向文件服务器发送LIST-UPDATE-FILESLIST-GOINTODIRECTORY消息.
if(pGridCtrl->GetDlgCtrlID() == ID_GRIDCTRL_FILESERVER_FILES)
{
// 如果点击的是"文件夹",而且不是".."和"."这两个文件夹就向服务器发出进入文件夹的申请.
if((CString)pRow->GetItem(2)->GetValue() == _T("文件夹") && (CString)pRow->GetItem(0)->GetValue() != _T("..") && (CString)pRow->GetItem(0)->GetValue() != _T("."))
{
CNCMessage msg;
msg.m_strMessage = _T("LIST-UPDATE-FILESLIST-GOINTODIRECTORY-") + (CString)pRow->GetItem(0)->GetValue();
if(theApp.m_Socket_File != NULL)
theApp.m_Socket_File->SendNetMessage(msg);
}
// 如果点击了".."就向服务器申请返回上一级目录.
if((CString)pRow->GetItem(2)->GetValue() == _T("文件夹") && (CString)pRow->GetItem(0)->GetValue() == _T(".."))
{
CNCMessage msg;
msg.m_strMessage = _T("LIST-UPDATE-FILESLIST-UP");
if(theApp.m_Socket_File != NULL)
{
theApp.m_Socket_File->SendNetMessage(msg);
}
}
// 如果点击了"."就向服务器申请刷新当前文件夹.
if((CString)pRow->GetItem(2)->GetValue() == _T("文件夹") && (CString)pRow->GetItem(0)->GetValue() == _T("."))
{
CNCMessage msg;
msg.m_strMessage = _T("LIST-REFLESH-FILESLIST");
if(theApp.m_Socket_File != NULL)
{
theApp.m_Socket_File->SendNetMessage(msg);
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -