www.pudn.com > duanxinfangwei.rar > MainFrm.cpp
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "smspreventforgery.h"
#include "MainFrm.h"
#include "Dialog_AppendNewProduct.h"
#include "FormView_ProductList.h"
#include "FormView_MakeNewCode.h"
#include "FormView_RuntimeQuery.h"
#include "FormView_CodeList.h"
#include "HttpServe.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern void StartHttpServe();
CODEVIEWFLAG g_codeListView; //号码统计视图
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_MENU_ADDNEWPRODUCT, OnMenuAddnewproduct)
ON_COMMAND(ID_MENU_PRODUCTLIST, OnMenuProductlist)
ON_COMMAND(ID_MENU_MAKECODE, OnMenuMakecode)
ON_COMMAND(ID_MENU_DSPQUERY, OnMenuDspquery)
ON_COMMAND(ID_MENU_DSPQUERYEDLIST, OnMenuDspqueryedlist)
ON_COMMAND(ID_MENU_DSPQUERYEDMULLIST, OnMenuDspqueryedmullist)
ON_COMMAND(ID_MENU_DSPVAILDCODELIST, OnMenuDspvaildcodelist)
ON_COMMAND(ID_MENU_LASTVER, OnMenuLastver)
ON_COMMAND(ID_MENU_MAIL, OnMenuMail)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
#if 0
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
}
#endif
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
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
#if 0
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
#endif
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~FWS_ADDTOTITLE; //去标题
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnMenuAddnewproduct()
{
/* 显示当前产品列表 */
SendMessage(WM_COMMAND, ID_MENU_PRODUCTLIST);
/* 显示添加对话框 */
CDialog_AppendNewProduct appendDlg;
appendDlg.DoModal();
}
/**********************************************************************
* 函数名: SwitchToForm
* 功 能: 切换视图
* 参 数: int nForm
* 返回值: void
**********************************************************************/
void CMainFrame::SwitchToForm(int nForm)
{
CView *pOldActiveView=GetActiveView(); //保存旧视图
CView *pNewActiveView=(CView*)GetDlgItem(nForm); //取得新视图
if(pNewActiveView==NULL)
{
switch(nForm) //这些ID是对话框的标志符,但也可以用其他的标志
{
case IDD_FORMVIEW_PRODUCTLIST: //产品列表
pNewActiveView=(CView*)new CFormView_ProductList;
break;
case IDD_FORMVIEW_NEWCODE: //追加新防伪号
pNewActiveView=(CView*)new CFormView_MakeNewCode;
break;
case IDD_FORMVIEW_RUNTIMEQUERY: //显示实时查询信息
pNewActiveView=(CView*)new CFormView_RuntimeQuery;
break;
case IDD_FORMVIEW_CODELIST: //防伪号列表
pNewActiveView=(CView*)new CFormView_CodeList;
break;
}
CCreateContext context; //将文挡和视图相连
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD ,
CFrameWnd::rectDefault, this, nForm, &context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView); //改变活动的视图
pNewActiveView->ShowWindow(SW_SHOW); //显示新的视图
pOldActiveView->ShowWindow(SW_HIDE); //隐藏旧的视图
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
delete pOldActiveView; //删除旧视图
RecalcLayout(); //调整框架窗口
}
/**********************************************************************
* 函数名: OnMenuProductlist
* 功 能: 显示产品列表
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuProductlist()
{
SwitchToForm(IDD_FORMVIEW_PRODUCTLIST);
}
/**********************************************************************
* 函数名: OnMenuMakecode
* 功 能: 产生新的防伪码
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuMakecode()
{
SwitchToForm(IDD_FORMVIEW_NEWCODE);
}
/**********************************************************************
* 函数名: OnCreateClient
* 功 能: 建立客户区
* 参 数: LPCREATESTRUCT
* : CCreateContext*
* 返回值: void
**********************************************************************/
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
/* 启动HTTP服务线程 */
StartHttpServe();
PostMessage(WM_COMMAND, ID_MENU_DSPQUERY);
return CFrameWnd::OnCreateClient(lpcs, pContext);
}
/**********************************************************************
* 函数名: OnMenuDspquery
* 功 能: 显示实时查询信息
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuDspquery()
{
SwitchToForm(IDD_FORMVIEW_RUNTIMEQUERY);
}
/**********************************************************************
* 函数名: OnMenuDspqueryedlist
* 功 能: 显示已查询过的防伪码列表
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuDspqueryedlist()
{
g_codeListView = QUERYEDLIST;
SwitchToForm(IDD_FORMVIEW_CODELIST);
}
/**********************************************************************
* 函数名: OnMenuDspqueryedmullist
* 功 能: 显示已查询过多次的防伪码列表
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuDspqueryedmullist()
{
g_codeListView = MULQUERYEDLIST;
SwitchToForm(IDD_FORMVIEW_CODELIST);
}
/**********************************************************************
* 函数名: OnMenuDspqueryedmullist
* 功 能: 显示假冒防伪码列表
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuDspvaildcodelist()
{
g_codeListView = INVALIDATIONLIST;
SwitchToForm(IDD_FORMVIEW_CODELIST);
}
/**********************************************************************
* 函数名: OnMenuLastver
* 功 能: 显示网站本产品主页面
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuLastver()
{
::ShellExecute(NULL, "open", "http://www.slnsoft.com/smspreventforgery", NULL, NULL, SW_SHOWNORMAL);
}
/**********************************************************************
* 函数名: OnMenuMail
* 功 能: 联系开发商
* 参 数: void
* 返回值: void
**********************************************************************/
void CMainFrame::OnMenuMail()
{
::ShellExecute(NULL, "open", "mailto:serve@slnsoft.com", NULL, NULL, SW_SHOWNORMAL);
}