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

📄 mainfrm.cpp

📁 使用vc进行数据库编程的好例子
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "ManageSystem.h"

#include "MainFrm.h"

#include "ProductSet.h"
#include "MemberSet.h"
#include "PdtNavigation.h"
#include "MemNavigation.h"
#include "MemSearch.h"
#include "PdtSearch.h"

#include "CoolTabCtrl.h"

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

#define	UPDATEPDT	0
#define UPDATEMEM	1

#define RESULT_SHOW	0
#define RESULT_HIDE	1

#define LOGON_SHOW		0
#define LOGON_HIDE		1
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
//===============Extern Value==============
extern CProductSet	*g_pSet;
extern CMemberSet	*g_mSet;
extern CDatabase	g_db;
extern bool		g_isPLocked;
extern bool		g_isMlocked;
extern PRODUCTCLASS* g_ProductClass;
extern int			g_AdmiID;
extern int			g_isAdmi;
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_SHOW_NAVIGAITION, OnShowNavigaition)
	ON_COMMAND(ID_SHOW_SEACHER, OnShowSeacher)
	ON_COMMAND(ID_ADMINISTRTOR_USERADMI, OnAdministrtorUseradmi)
	ON_COMMAND(ID_CHANGKEY, OnChangkey)
	ON_COMMAND(ID_FILE_ZHUXIAO, OnFileZhuxiao)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_SHOW_PRO_RESULT_SIMP,ShowPResultSimple)
	ON_MESSAGE(WM_SHOW_MEM_RESULT_SIMP,ShowMResultSimple)
	ON_MESSAGE(WM_UPDETASELDATA,UpdateSelData)
	ON_MESSAGE(WM_LOGON,Logon)
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()
{
	if(g_pSet->IsOpen())
	{
		g_pSet->Close();
	}
	g_pSet->Delete();
	
	if(g_mSet->IsOpen())
	{
		g_mSet->Close();
	}
	g_mSet->Close();

	if(g_db.IsOpen())
	{
		g_db.Close();
	}
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}
	if (!m_wndDlgBar.Create(this, IDR_MAINFRAME, 
		CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
	{
		TRACE0("Failed to create dialogbar\n");
		return -1;		// fail to create
	}

	if (!m_wndReBar.Create(this) ||
		!m_wndReBar.AddBar(&m_wndToolBar) ||
		!m_wndReBar.AddBar(&m_wndDlgBar))
	{
		TRACE0("Failed to create rebar\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
	}

	// TODO: Remove this if you don't want tool tips
	//====================初始化====================
	g_isPLocked=false;
	g_isMlocked=false;
	g_pSet=new CProductSet();
	g_mSet=new CMemberSet();

//	if(!g_db.Open("KeChengSheJi",FALSE,FALSE,_T("ODBC,UID=sa,PWD= ")))
	if(!g_db.Open("KeChengSheJi"))//,FALSE,FALSE,_T("ODBC,UID=sa,PWD= ")))
	{
		TRACE0("Failed to open database\n");
		AfxMessageBox("打开数据库错误!");
		//::PostMessage(::AfxGetMainWnd()->m_hWnd,WM_LOGON,0,LOGON_SHOW);
			return -1;
	}

	//===================信息导航栏=================
	if (!m_Navigation.Create(_T("信息导航栏"), this, CSize(170,400),TRUE,123))
	{
		TRACE0("Failed to create navigation bar\n");
			return -1;
	}

	if(!FillTheNavigation())
	{
		TRACE0("Failed to fill navigation bar\n");
			return -1;
	}

	//===================查找工具条=================
	if (!m_Search.Create(_T("查找工具条"), this, CSize(225,400),TRUE,124))
	{
		TRACE0("Failed to create search bar\n");
			return -1;
	}

	if(!FillSearchBar())
	{
		TRACE0("Failed to fill search bar\n");
			return -1;
	}
	ShowControlBar(&m_Search, false, FALSE);
	//====================停靠控制=====================
	m_Navigation.SetBarStyle(m_Navigation.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
	m_Search.SetBarStyle(m_Search.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

	m_Navigation.EnableDocking(CBRS_ALIGN_ANY);
	m_Search.EnableDocking(CBRS_ALIGN_ANY);

	EnableDocking(CBRS_ALIGN_ANY);

	DockControlBar(&m_Navigation, AFX_IDW_DOCKBAR_LEFT);
	DockControlBar(&m_Search, AFX_IDW_DOCKBAR_LEFT);
	

	/////////使浮动与停靠显示相同的头部////
	#ifdef _SCB_REPLACE_MINIFRAME
    m_pFloatingFrameClass = RUNTIME_CLASS(CSCBMiniDockFrameWnd);
	#endif //_SCB_REPLACE_MINIFRAME

	//===================================
	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY);

	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	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


BOOL CMainFrame::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	return CFrameWnd::DestroyWindow();
}

bool CMainFrame::FillTheNavigation()
{
	m_TabNavigation.Create(TCS_UP|WS_CHILD|WS_VISIBLE,CRect(0,0,170,200),&m_Navigation,100);

	if(!m_TabNavigation.AddPage(RUNTIME_CLASS(CPdtNavigation),IDD_BAR_P_NAVIGATION,"产品信息",IDI_ICONPRODUCT))
		return false;

	if(!m_TabNavigation.AddPage(RUNTIME_CLASS(CMemNavigation),IDD_BAR_M_NAVIGATION,"会员信息",IDI_ICONMEMBER))
		return false;

	m_TabNavigation.SetActivePage(1);
	m_TabNavigation.UpdateWindow();

	m_TabNavigation.ShowWindow(SW_HIDE);
	
	return true;
}

bool CMainFrame::FillSearchBar()
{
	m_TabSearch.Create(TCS_UP|WS_CHILD|WS_VISIBLE,CRect(0,0,170,200),&m_Search,101);

	if(!m_TabSearch.AddPage(RUNTIME_CLASS(CPdtSearch),IDD_BAR_P_SEARCH,"搜索产品信息",IDI_ICONPRODUCT))
		return false;

	if(!m_TabSearch.AddPage(RUNTIME_CLASS(CMemSearch),IDD_BAR_M_SEARCH,"搜索会员信息",IDI_ICONMEMBER))
		return false;

	m_TabSearch.SetActivePage(1);
	m_TabSearch.UpdateWindow();
	
	return true;
}

void CMainFrame::ShowPResultSimple(WPARAM wParam ,LPARAM lParam)
{
	::SendMessage(GetActiveView()->m_hWnd,WM_SHOW_PRO_RESULT_SIMP,wParam,lParam);	
}

void CMainFrame::ShowMResultSimple(WPARAM wParam ,LPARAM lParam)
{
	::SendMessage(GetActiveView()->m_hWnd,WM_SHOW_MEM_RESULT_SIMP,wParam,lParam);	
}

void CMainFrame::UpdateSelData(WPARAM wParam ,LPARAM lParam)
{
	if(lParam==UPDATEMEM)
	{
		::SendMessage(m_TabNavigation.GetPageWnd(1)->m_hWnd,WM_UPDETASELDATA,0,0);
	}
	else if(lParam==UPDATEPDT)
	{
		::SendMessage(m_TabNavigation.GetPageWnd(0)->m_hWnd,WM_UPDETASELDATA,0,0);
	}
}

void CMainFrame::Logon(WPARAM wParam ,LPARAM lParam)
{
	if(lParam==LOGON_SHOW)
	{
		m_TabNavigation.ShowWindow(SW_SHOW);
		::SendMessage(GetActiveView()->m_hWnd,WM_LOGON,0,LOGON_SHOW);
	}
	else if(lParam==LOGON_HIDE)
	{
		m_TabNavigation.ShowWindow(SW_HIDE);
		::SendMessage(GetActiveView()->m_hWnd,WM_LOGON,0,LOGON_HIDE);
	}
}

void CMainFrame::OnShowNavigaition() 
{
	// TODO: Add your command handler code here
	ShowControlBar(&m_Navigation, !m_Navigation.IsVisible(), FALSE);	
}

void CMainFrame::OnShowSeacher() 
{
	// TODO: Add your command handler code here
	bool bVisible=m_Search.IsVisible();
	ShowControlBar(&m_Search, !bVisible, FALSE);
	ShowControlBar(&m_Navigation, bVisible, FALSE);
}

void CMainFrame::OnAdministrtorUseradmi() 
{
	// TODO: Add your command handler code here
	m_UserDlg.NowUserID=g_AdmiID;
	m_UserDlg.DoModal();
}

void CMainFrame::OnChangkey() 
{
	// TODO: Add your command handler code here
	m_ChangKeyDlg.m_userID=g_AdmiID;
	m_ChangKeyDlg.DoModal();
}

void CMainFrame::OnFileZhuxiao() 
{
	// TODO: Add your command handler code here
	Logon(0,LOGON_HIDE);
	
	if(IDOK==m_LogonDlg.DoModal())
	{
		g_AdmiID=m_LogonDlg.Admi_id;
		g_isAdmi=m_LogonDlg.IsAdmi;
		::PostMessage(::AfxGetMainWnd()->m_hWnd,WM_LOGON,0,LOGON_SHOW);
	}
	else
	{
		::PostQuitMessage(0);
	}	
}

⌨️ 快捷键说明

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