📄 mainfrm.cpp
字号:
// 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 + -