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

📄 mainfrm.cpp

📁 用VC写的监控中心后台程序。 代码全
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "GpsSC.h"

#include "MainFrm.h"
#include "Splash.h"
#include "ClientinfoSet.h"
#include "PassWordDlg.h"
#include "UserInfoDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

extern CGpsSCApp theApp;
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_VIEWCAR, OnViewcar)
	ON_UPDATE_COMMAND_UI(ID_VIEWCAR, OnUpdateViewcar)
	ON_COMMAND(ID_VIEWBOTTOMBAR, OnViewbottombar)
	ON_UPDATE_COMMAND_UI(ID_VIEWBOTTOMBAR, OnUpdateViewbottombar)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_SRELOGIN, OnSrelogin)
	ON_UPDATE_COMMAND_UI(ID_SRELOGIN, OnUpdateSrelogin)
	ON_COMMAND(ID_LOGIN_INFO, OnLoginInfo)
	ON_UPDATE_COMMAND_UI(ID_LOGIN_INFO, OnUpdateLoginInfo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
//	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_STATUS,
	ID_INDICATOR_PROMPT,
	ID_INDICATOR_OTHERS,
//	ID_INDICATOR_CAPS,
//	ID_INDICATOR_NUM,
//	ID_INDICATOR_SCRL,
};



/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
int	CMainFrame::m_number=1;

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here

}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	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
	}
	m_wndStatusBar.SetPaneInfo(0,ID_INDICATOR_STATUS,SBPS_NORMAL,240);		//用来显示工作状态
	m_wndStatusBar.SetPaneInfo(1,ID_INDICATOR_PROMPT,SBPS_STRETCH,50);		//用来显示提示信息
	m_wndStatusBar.SetPaneInfo(2,ID_INDICATOR_OTHERS,SBPS_NORMAL,100);		//用来显示其他信息

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	/* m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);  */

	//设置ToolBar的图标列表
	m_ilTB.Create(32, 32, TRUE | ILC_COLOR8, 19, 0);
	HICON hIcon = NULL;

	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON5), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON33), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON29), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON21), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON23), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON27), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON9), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON10), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON12), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON11), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON32), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON25), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON26), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON17), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON18), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON19), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON15), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON24), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);
	hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
		MAKEINTRESOURCE(IDI_ICON30), IMAGE_ICON, 32, 32, 0);
	m_ilTB.Add(hIcon);

	m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilTB);
	
	
	//创建我的工具条
	if (!m_wndMyBar1.Create(_T("我的右边控制条"),this,CSize(150,200),TRUE,123)) 
	{
		TRACE0("Failed to create mybar\n"); return -1; 
	}
	if (!m_wndMyBar2.Create(_T("我的下边控制条"),this,CSize(100,109),TRUE,124)) 
	{
		TRACE0("Failed to create mybar\n"); return -1; 
	}


	//创建TabCtrl控件
	if(!m_wndTabCtrl.Create(TCS_DOWN|WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),&m_wndMyBar1,125))
	{
		TRACE0("Failed to create mybar\n"); 
		return -1; 
	}
	

	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	//创建List控件
	if(!m_wndListCtrl.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|ES_AUTOVSCROLL,
		CRect(0,0,0,0),&m_wndMyBar2,101))
		return -1;
	

	m_wndListCtrl.ModifyStyle(0,LVS_REPORT|LVS_ALIGNLEFT);
	m_wndListCtrl.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
	m_wndListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	m_wndListCtrl.InsertColumn(0,"ID",  LVCFMT_CENTER,35);
	m_wndListCtrl.InsertColumn(1,"车号",LVCFMT_CENTER,65);
	m_wndListCtrl.InsertColumn(2,"司机",LVCFMT_CENTER,65);
	m_wndListCtrl.InsertColumn(3,"时间",LVCFMT_CENTER,145);
	m_wndListCtrl.InsertColumn(4,"速度",LVCFMT_CENTER,105);
	m_wndListCtrl.InsertColumn(5,"经度",LVCFMT_CENTER,85);
	m_wndListCtrl.InsertColumn(6,"纬度",LVCFMT_CENTER,85);
	m_wndListCtrl.InsertColumn(7,"状态",LVCFMT_CENTER,100);
	m_wndListCtrl.InsertColumn(8,"车载电话号码",LVCFMT_CENTER,100);
	m_wndListCtrl.InsertColumn(9,"汽车位置",LVCFMT_CENTER,100);
	m_wndListCtrl.InsertColumn(10,"备注",LVCFMT_CENTER,100);

	//创建树状控件1
	if (!m_wndTree1.Create(WS_CHILD|WS_VISIBLE|
		TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
		CRect(0, 0, 0, 0), &m_wndTabCtrl, 100))
	{
		TRACE0("Failed to create instant bar child\n");
		return -1;
	}
	
	m_wndTree1.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

	//创建树状控件2
	if (!m_wndTree2.Create(WS_CHILD|WS_VISIBLE|
		TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
		CRect(0, 0, 0, 0), &m_wndTabCtrl, 105))
	{
		TRACE0("Failed to create instant bar child\n");
		return -1;
	}
	m_wndTree2.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
	m_pTreeItem1 = m_wndTree1.InsertItem(_T("所有汽车"));
	m_pTreeItem2 = m_wndTree2.InsertItem(_T("所有司机"));
	InsertTreeItem();

	// 这部分代码必须放在主工具条之后,否则程序将不能正常执行
	m_wndMyBar1.SetBarStyle(m_wndMyBar1.GetBarStyle() | CBRS_TOOLTIPS | 
	CBRS_FLYBY | CBRS_SIZE_DYNAMIC); 
	m_wndMyBar2.SetBarStyle(m_wndMyBar2.GetBarStyle() | CBRS_TOOLTIPS |
	CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
	m_wndMyBar1.EnableDocking(CBRS_ALIGN_RIGHT|CBRS_ALIGN_LEFT);
	m_wndMyBar2.EnableDocking(CBRS_ALIGN_BOTTOM);

	
	#ifdef _SCB_REPLACE_MINIFRAME
	m_pFloatingFrameClass = RUNTIME_CLASS(CSCBMiniDockFrameWnd); 
	#endif //_SCB_REPLACE_MINIFRAME
	
	DockControlBar(&m_wndMyBar1, AFX_IDW_DOCKBAR_RIGHT);	///停靠在右边
	DockControlBar(&m_wndMyBar2, AFX_IDW_DOCKBAR_BOTTOM);	///停靠在下边
	
	// CG: The following line was added by the Splash Screen component.	CSplashWnd::ShowSplashScreen(this);

	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CMDIFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

//	cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
//		| WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CMDIFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CMDIFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers

void CMainFrame::Insert2ListCtrl(CString	strVehicleNo,
						 CString	strVehicleDriver,
						 CString	strTime,
						 CString    strSpeed,
						 CString    strLongitude,
						 CString	strLatitude,
						 CString	strState,
						 CString	strTelNo,
						 CString	strPosition)   
{			
	int m_nItemCount;
	m_nItemCount =  m_wndListCtrl.GetItemCount();
	char szBuffer [ 256 ];
	if(m_nItemCount >= 20)
	{
		m_wndListCtrl.DeleteItem(19);
	}

	m_wndListCtrl.InsertItem (0,ltoa (m_number++, szBuffer, 10 ));
	m_wndListCtrl.SetItemText(0,1,strVehicleNo);
	m_wndListCtrl.SetItemText(0,2,strVehicleDriver);
	m_wndListCtrl.SetItemText(0,3,strTime);
	m_wndListCtrl.SetItemText(0,4,strSpeed);
	m_wndListCtrl.SetItemText(0,5,strLongitude);
	m_wndListCtrl.SetItemText(0,6,strLatitude);
	m_wndListCtrl.SetItemText(0,7,strState);
	m_wndListCtrl.SetItemText(0,8,strTelNo);
	m_wndListCtrl.SetItemText(0,9,strPosition);
}


void CMainFrame::OnViewbottombar() 

⌨️ 快捷键说明

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