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

📄 taskpane.cpp

📁 用VC++开发了一个数控加工的三维仿真程序
💻 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 + -