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

📄 userscheckdlg.cpp

📁 采用MFC+SQLSERVER 2000的图书管理系统,ODBC方式连接数据库。功能包括 书籍管理
💻 CPP
字号:
// UsersCheckDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "UsersCheckDlg.h"
#include "UsersSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUsersCheckDlg dialog


CUsersCheckDlg::CUsersCheckDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUsersCheckDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUsersCheckDlg)
	m_radio = 0;
	strContent = _T("");
	//}}AFX_DATA_INIT
}


void CUsersCheckDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUsersCheckDlg)
	DDX_Control(pDX, IDC_LIST1, m_ctrList);
	DDX_Radio(pDX, IDC_RADIO1, m_radio);
	DDX_Text(pDX, IDC_CONTENT, strContent);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUsersCheckDlg, CDialog)
	//{{AFX_MSG_MAP(CUsersCheckDlg)
	ON_BN_CLICKED(IDC_CHECK, OnCheck)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUsersCheckDlg message handlers
BOOL CUsersCheckDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子 
		m_ctrList.InsertColumn(0,"读者ID");
	m_ctrList.InsertColumn(1,"密码");
	m_ctrList.InsertColumn(2,"权限");
	m_ctrList.InsertColumn(3,"性别");
	m_ctrList.InsertColumn(4,"姓名");
	m_ctrList.InsertColumn(5,"地址");
	m_ctrList.InsertColumn(6,"联系电话");
	m_ctrList.InsertColumn(7,"email");

	m_ctrList.InsertColumn(8,"班级");
    m_ctrList.InsertColumn(9,"系别");
	m_ctrList.InsertColumn(10,"专业");
	m_ctrList.InsertColumn(11,"学号");
	m_ctrList.InsertColumn(12,"所在单位");
	m_ctrList.InsertColumn(13,"用户状态");

	
	RECT rect;
	m_ctrList.GetWindowRect(&rect);
	int Width=rect.right-rect.left;
	m_ctrList.SetColumnWidth(0,Width/12);
	m_ctrList.SetColumnWidth(1,Width/12);
	m_ctrList.SetColumnWidth(2,Width/12);
	m_ctrList.SetColumnWidth(3,Width/12);
	m_ctrList.SetColumnWidth(4,Width/12);
	m_ctrList.SetColumnWidth(5,Width/12);
	m_ctrList.SetColumnWidth(6,Width/12);
	m_ctrList.SetColumnWidth(7,Width/12);
	m_ctrList.SetColumnWidth(8,Width/12);
	m_ctrList.SetColumnWidth(9,Width/12);
	m_ctrList.SetColumnWidth(10,Width/12);
	m_ctrList.SetColumnWidth(11,Width/12);
	m_ctrList.SetColumnWidth(12,Width/12);
	m_ctrList.SetColumnWidth(13,Width/12);
	 
 
	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUsersCheckDlg::OnCheck() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	strContent.TrimLeft();
	strContent.TrimRight();
     
   if(strContent.IsEmpty())
   {
	   MessageBox("请正确填入查询数据!","用户查询");
	   return ;
   }
     	if(!m_database.IsOpen())
	{
		//连接数据源
		if(!m_database.OpenEx("DSN=MySQL;UID=sa;PWD=123;CDatabase::noOdbcDialog"))
		{
			MessageBox("连接数据库失败!","新书登记入库",MB_OK|MB_ICONINFORMATION);
			return;
		}
	}
  	CUsersSet *m_pset=new CUsersSet(&m_database);  
	CString strSQL;
	if(m_radio ==0)
	{
     strSQL.Format("select * from USERS where Uid='%s'",strContent);
	}
	if(m_radio ==1)
	{
     strSQL.Format("select * from USERS where Uname='%s'",strContent);
	}	
	if(m_radio ==2)
	{
     strSQL.Format("select * from USERS where Uaddress='%s'",strContent);
	}	
	if(m_radio == 3)
	{
      strSQL.Format("select * from USERS where Ucorporation='%s'",strContent);
	}
    
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	while(!m_pset->IsEOF())
	{
		m_pset->MoveNext();
		m_pset->GetRecordCount();
	}
	if(m_pset->GetRecordCount()==0)
	{
		MessageBox("本馆没有该用户记录!","用户查询");
		m_pset->Close();
		m_database.Close();
		return;
	}

 
	//处理表格
	m_ctrList.DeleteAllItems();
	m_pset->MoveFirst();
	char buf[50]={'\0'};
	CDBVariant var;
	int i=0;
    CString strTemp;
	while(!m_pset->IsEOF())
	{   
       //增加第i行记录
	 	m_ctrList.InsertItem(i,buf);
		//i行用户id字段
        strTemp=m_pset->m_Uid;
        m_ctrList.SetItemText(i,0,strTemp);
		//密码
	 	strTemp=m_pset->m_Upassword;
	    m_ctrList.SetItemText(i,1,strTemp);
        //权限
        strTemp.Format("%d",m_pset->m_Upower);
	    m_ctrList.SetItemText(i,2,strTemp);
		//性别
		strTemp=m_pset->m_Usex;
	    m_ctrList.SetItemText(i,3,strTemp);
		//姓名
		strTemp=m_pset->m_Uname;
	    m_ctrList.SetItemText(i,4,strTemp);
		//地址
		strTemp=m_pset->m_Uaddress;
	    m_ctrList.SetItemText(i,5,strTemp);
		//联系电话
		strTemp=m_pset->m_Utel;
	    m_ctrList.SetItemText(i,6,strTemp);
		//email
		strTemp=m_pset->m_Uemail;
	    m_ctrList.SetItemText(i,7,strTemp);
		//班级
		strTemp=m_pset->m_Uclass;
	    m_ctrList.SetItemText(i,8,strTemp);
		//系别
		strTemp=m_pset->m_Udepartment;
	    m_ctrList.SetItemText(i,9,strTemp);
		//专业
		strTemp=m_pset->m_Umajor;
	    m_ctrList.SetItemText(i,10,strTemp);
		//学号
        strTemp=m_pset->m_Uclassno;
	    m_ctrList.SetItemText(i,11,strTemp);
		//单位
		 strTemp=m_pset->m_Ucorporation;
	    m_ctrList.SetItemText(i,12,strTemp);
		//用户状态
		 strTemp=m_pset->m_Ureadstat;
	    m_ctrList.SetItemText(i,13,strTemp);
		i++;
		m_pset->MoveNext();
		UpdateData(FALSE);    
}  
	m_pset->Close();
	m_database.Close();	 





	 
}

void CUsersCheckDlg::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	m_radio=0;
}

void CUsersCheckDlg::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	m_radio=1;
}

void CUsersCheckDlg::OnRadio3() 
{
	// TODO: Add your control notification handler code here
	m_radio=2;
}

void CUsersCheckDlg::OnRadio4() 
{
	// TODO: Add your control notification handler code here
	m_radio=3;
}


HBRUSH CUsersCheckDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
		if(nCtlColor ==CTLCOLOR_DLG)
        return m_brush; //返加绿色刷子
        
	if(nCtlColor==CTLCOLOR_EDIT) 
	{
        pDC->SetTextColor(RGB(0,0,255));     
		pDC->SetBkMode(TRANSPARENT); 
	}
    if(nCtlColor==CTLCOLOR_STATIC) 
	{   
		//pDC->SetBkColor(RGB(0, 255, 0));
        pDC->SetTextColor(RGB(255,0,0)); 
		pDC->SetBkMode(TRANSPARENT); 
	}
	if(nCtlColor==  CTLCOLOR_LISTBOX) 
	{
       pDC->SetTextColor(RGB(0,0,255));     
		//pDC->SetBkMode(TRANSPARENT); 
	}

	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

⌨️ 快捷键说明

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