📄 memnavigation.cpp
字号:
// MemNabigation.cpp : implementation file
//
#include "stdafx.h"
#include "ManageSystem.h"
#include "MemNavigation.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define RESULT_SHOW 0
#define RESULT_HIDE 1
/////////////////////////////////////////////////////////////////////////////
// CMemNavigation dialog
extern bool g_isMLocked;
IMPLEMENT_DYNCREATE(CMemNavigation, CDialog)
CMemNavigation::CMemNavigation(CWnd* pParent /*=NULL*/)
: CDialog(CMemNavigation::IDD, pParent)
{
//{{AFX_DATA_INIT(CMemNavigation)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CMemNavigation::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMemNavigation)
DDX_Control(pDX, IDC_TRE_MEMBER, m_Tre_Member);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMemNavigation, CDialog)
//{{AFX_MSG_MAP(CMemNavigation)
ON_WM_SIZE()
ON_NOTIFY(TVN_SELCHANGED, IDC_TRE_MEMBER, OnSelchangedTreMember)
ON_NOTIFY(NM_CLICK, IDC_TRE_MEMBER, OnClickTreMember)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_UPDETASELDATA,UpdateSelData)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMemNavigation message handlers
void CMemNavigation::OnOK()
{
// TODO: Add extra validation here
}
void CMemNavigation::OnCancel()
{
// TODO: Add extra cleanup here
}
void CMemNavigation::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
OnDialogSize();
}
BOOL CMemNavigation::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
bIsFirstSel=true;
AddItems();
m_Tre_Member.Expand(mem_addr,TVE_EXPAND);
/*
CRect rect;
GetClientRect(&rect);
if(m_Tre_Member.GetSafeHwnd())
m_Tre_Member.MoveWindow(&rect);
*/
OnDialogSize();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMemNavigation::OnSelchangedTreMember(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(bIsFirstSel==true)
{
*pResult = 0;
return;
}
if(g_isMlocked==false)
{
if(g_mSet->IsOpen())
g_mSet->Close();
}
else
{
*pResult=0;
return;
}
CString sqlComm,currrentItem,parentItem;
m_hTreeCurrent=m_Tre_Member.GetSelectedItem();
currrentItem=m_Tre_Member.GetItemText(m_hTreeCurrent);
m_hTreeCurrent=m_Tre_Member.GetParentItem(m_hTreeCurrent);
parentItem=m_Tre_Member.GetItemText(m_hTreeCurrent);
try
{
if(parentItem.IsEmpty())//根
{
sqlComm="SELECT * FROM memberinfo";
}
else if(parentItem=="按地址分类")
{
CString addr=currrentItem.Left(4);
sqlComm="SELECT * FROM memberinfo WHERE province='";
sqlComm+=addr;
sqlComm+="'";
}
else if(parentItem=="按注册时间分类")
{
CString date=currrentItem.Left(4);
if(date=="2002")
{
sqlComm="SELECT * FROM memberinfo WHERE register_time >= '2002-01-01'";
}
else if(date=="1996")
{
sqlComm="SELECT * FROM memberinfo WHERE register_time <= '1996-12-31'";
}
else
{
CString date1=date+"-01-01";
CString date2=date+"-12-31";
sqlComm="SELECT * FROM memberinfo WHERE register_time BETWEEN '";
sqlComm+=date1;
sqlComm+="' AND '";
sqlComm+=date2;
sqlComm+="'";
}
}
g_mSet->Open(CRecordset::snapshot,sqlComm);
g_isMlocked=true;
::SendMessage(::AfxGetMainWnd()->m_hWnd,WM_SHOW_MEM_RESULT_SIMP,0,RESULT_SHOW);
}
catch(CDBException* pe)
{
AfxMessageBox("用户信息数据加载错误:\n"+pe->m_strError);
if(g_mSet)
{
if(g_mSet->IsOpen())
g_mSet->Close();
delete g_mSet;
}
pe->Delete();
}
*pResult = 0;
}
void CMemNavigation::OnDialogSize()
{
if(m_Tre_Member.GetSafeHwnd())
{
CRect rect;
GetClientRect(&rect);
m_Tre_Member.MoveWindow(&rect);
}
}
bool CMemNavigation::AddItems()
{
mem_addr = m_Tre_Member.InsertItem(_T("按地址分类"));
m_Tre_Member.InsertItem(_T("浙江省"), mem_addr);
m_Tre_Member.InsertItem(_T("山东省"), mem_addr);
m_Tre_Member.InsertItem(_T("江苏省"), mem_addr);
m_Tre_Member.InsertItem(_T("上海市"), mem_addr);
m_Tre_Member.InsertItem(_T("北京市"), mem_addr);
m_Tre_Member.InsertItem(_T("辽宁省"), mem_addr);
m_Tre_Member.InsertItem(_T("广东省"), mem_addr);
m_Tre_Member.InsertItem(_T("黑龙江省"), mem_addr);
m_Tre_Member.InsertItem(_T("吉林省"), mem_addr);
m_Tre_Member.InsertItem(_T("辽宁省"), mem_addr);
m_Tre_Member.InsertItem(_T("河北省"), mem_addr);
m_Tre_Member.InsertItem(_T("河南省"), mem_addr);
m_Tre_Member.InsertItem(_T("湖北省"), mem_addr);
m_Tre_Member.InsertItem(_T("湖南省"), mem_addr);
m_Tre_Member.InsertItem(_T("江西省"), mem_addr);
m_Tre_Member.InsertItem(_T("福建省"), mem_addr);
m_Tre_Member.InsertItem(_T("广东省"), mem_addr);
m_Tre_Member.InsertItem(_T("海南省"), mem_addr);
m_Tre_Member.InsertItem(_T("安徽省"), mem_addr);
m_Tre_Member.InsertItem(_T("四川省"), mem_addr);
m_Tre_Member.InsertItem(_T("山西省"), mem_addr);
m_Tre_Member.InsertItem(_T("陕西省"), mem_addr);
m_Tre_Member.InsertItem(_T("宁夏自治区"), mem_addr);
m_Tre_Member.InsertItem(_T("西藏自治区"), mem_addr);
m_Tre_Member.InsertItem(_T("台湾省"), mem_addr);
mem_date = m_Tre_Member.InsertItem(_T("按注册时间分类"));
m_Tre_Member.InsertItem(_T("2002年"), mem_date);
m_Tre_Member.InsertItem(_T("2001年"), mem_date);
m_Tre_Member.InsertItem(_T("2000年"), mem_date);
m_Tre_Member.InsertItem(_T("1999年"), mem_date);
m_Tre_Member.InsertItem(_T("1998年"), mem_date);
m_Tre_Member.InsertItem(_T("1997年"), mem_date);
m_Tre_Member.InsertItem(_T("1996年及以前"), mem_date);
return true;
}
void CMemNavigation::OnClickTreMember(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
bIsFirstSel=false;
OnSelchangedTreMember(pNMHDR,pResult);
*pResult = 0;
}
void CMemNavigation::UpdateSelData()
{
if(g_isMlocked==false)
{
if(g_mSet->IsOpen())
g_mSet->Close();
}
else
{
return;
}
CString sqlComm,currrentItem,parentItem;
m_hTreeCurrent=m_Tre_Member.GetSelectedItem();
currrentItem=m_Tre_Member.GetItemText(m_hTreeCurrent);
m_hTreeCurrent=m_Tre_Member.GetParentItem(m_hTreeCurrent);
parentItem=m_Tre_Member.GetItemText(m_hTreeCurrent);
try
{
if(parentItem.IsEmpty())//根
{
sqlComm="SELECT * FROM memberinfo";
}
else if(parentItem=="按地址分类")
{
CString addr=currrentItem.Left(4);
sqlComm="SELECT * FROM memberinfo WHERE province='";
sqlComm+=addr;
sqlComm+="'";
}
else if(parentItem=="按注册时间分类")
{
CString date=currrentItem.Left(4);
if(date=="2002")
{
sqlComm="SELECT * FROM memberinfo WHERE register_time >= '2002-01-01'";
}
else if(date=="1996")
{
sqlComm="SELECT * FROM memberinfo WHERE register_time <= '1996-12-31'";
}
else
{
CString date1=date+"-01-01";
CString date2=date+"-12-31";
sqlComm="SELECT * FROM memberinfo WHERE register_time BETWEEN '";
sqlComm+=date1;
sqlComm+="' AND '";
sqlComm+=date2;
sqlComm+="'";
}
}
g_mSet->Open(CRecordset::snapshot,sqlComm);
g_isMlocked=true;
::SendMessage(::AfxGetMainWnd()->m_hWnd,WM_SHOW_MEM_RESULT_SIMP,0,RESULT_HIDE);
}
catch(CDBException* pe)
{
AfxMessageBox("用户信息数据加载错误:\n"+pe->m_strError);
if(g_mSet)
{
if(g_mSet->IsOpen())
g_mSet->Close();
delete g_mSet;
}
pe->Delete();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -