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

📄 bumendlg.cpp

📁 一套人事管理系统
💻 CPP
字号:
// BUMENDLG.cpp : implementation file
//

#include "stdafx.h"
#include "zhurui_jk02_人事管理.h"
#include "BUMENDLG.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBUMENDLG dialog


CBUMENDLG::CBUMENDLG(CWnd* pParent /*=NULL*/)
	: CDialog(CBUMENDLG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBUMENDLG)
	m_NAME = _T("");
	//}}AFX_DATA_INIT
}


void CBUMENDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBUMENDLG)
	DDX_Control(pDX, IDC_TREE, m_TREE);
	DDX_Text(pDX, IDC_EDIT_BUMENNAME, m_NAME);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBUMENDLG, CDialog)
	//{{AFX_MSG_MAP(CBUMENDLG)
	ON_WM_CTLCOLOR()
	ON_WM_NCMOUSEMOVE() 
	ON_WM_NCLBUTTONDOWN()
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, OnSelchangedTree)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBUMENDLG message handlers

HBRUSH CBUMENDLG::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
   if(nCtlColor   ==   CTLCOLOR_DLG)   
	{   
        //返回对话框的颜色   
		hbr=(HBRUSH)::CreateSolidBrush(RGB(0,255,255));     
	}  
	
	HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH); 
	if(nCtlColor==CTLCOLOR_STATIC)   
	{   
		//让静态文本框透明   
		pDC->SetBkMode(TRANSPARENT);   
		pDC->SetTextColor(RGB(0,255,255));   //设置字体颜色天蓝色   
		HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);  
		return hbr0 ;
	}   
	if(nCtlColor==CTLCOLOR_EDIT)   
	{   
		//让静态文本框不透明   
		pDC->SetBkMode(2);   
		pDC->SetBkColor(RGB(0,0,0));
		pDC->SetTextColor(RGB(0,255,255));   //设置字体颜色天蓝色   
		HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);  
		return hbr0 ;
	}   
	return hbr ;
}

void CBUMENDLG::OnNcMouseMove(UINT nHitTest, CPoint point)
{
	CRect rc;
	this->GetWindowRect(&rc);
	CDC* dc;
	dc=GetWindowDC();
	CDC memdc;
	memdc.CreateCompatibleDC(dc);
	CRect rc_window,rc_min,rc_close;
	GetWindowRect(&rc_window);

	rc_min.left=rc_window.right-90;
	rc_min.right=rc_window.right-65;
	rc_min.top=rc_window.top;
	rc_min.bottom=rc_window.top+21;

	rc_close.left=rc_window.right-45;
	rc_close.right=rc_window.right-7;
	rc_close.top=rc_window.top;
	rc_close.bottom=rc_window.top+18;
	
	
	CBitmap bmp,bmp1,*oldbmp;
	if(rc_close.PtInRect(point))
	{
		bmp.LoadBitmap("IDB_CLOSE");
		
	}
	else
	{
		bmp.LoadBitmap("IDB_NORMAL");
	}
	oldbmp=memdc.SelectObject(&bmp);
	dc->BitBlt(rc.Width()-93,0,93,30,&memdc,0,0,SRCCOPY);
	
	bmp1.LoadBitmap("IDB_TOP");
	memdc.SelectObject(&bmp1);
	dc->BitBlt(0,0,rc.Width()-93,30,&memdc,0,0,SRCCOPY);
	memdc.SelectObject(oldbmp);
	bmp1.DeleteObject();
	bmp.DeleteObject();
	ReleaseDC(&memdc);
	ReleaseDC(dc);
	
	
	memdc.DeleteDC();
	
//	dc->DeleteDC();


}

void CBUMENDLG::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
	CRect rc_window,rc_min,rc_close;
	GetWindowRect(&rc_window);
	
	rc_close.left=rc_window.right-45;
	rc_close.right=rc_window.right-7;
	rc_close.top=rc_window.top;
	rc_close.bottom=rc_window.top+21;
	
	
	if(rc_close.PtInRect(point))
	{
		SendMessage(WM_CLOSE);
	}
	else
	{
		Default();
	}
		
}

void CBUMENDLG::OnPaint() 
{	
	// TODO: Add your message handler code here
	CRect rc,rc_client;
	CPaintDC dc0(this); // device context for painting
	CDC* dc;
	dc=this->GetWindowDC();
	CDC memdc;
	memdc.CreateCompatibleDC(dc);
	CBitmap bmp,bmp1;
	bmp.LoadBitmap("IDB_TOP");
	memdc.SelectObject(&bmp);
	this->GetWindowRect(&rc);
	dc->BitBlt(0,0,rc.Width(),30,&memdc,0,0,SRCCOPY);
	bmp.DeleteObject();
	bmp1.LoadBitmap("IDB_NORMAL");
	memdc.SelectObject(&bmp1);
	dc->BitBlt(rc.Width()-93,0,93,30,&memdc,0,0,SRCCOPY);
	memdc.DeleteDC();
	// Do not call CDialog::OnPaint() for painting messages
}

BOOL CBUMENDLG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	// TODO: Add extra initialization here
	
	m_sbtADD.AutoLoad(IDC_ADD,this);
	m_sbtEDIT.AutoLoad(IDC_EDIT,this);
	m_sbtDELETE.AutoLoad(IDC_DELETE,this);
	m_sbtOK.AutoLoad(IDCANCLE,this);
	
	m_sbtADD.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_ADD);
	m_sbtEDIT.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_EDIT);
	m_sbtDELETE.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_DELETE);
	m_sbtOK.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDCANCLE);
	
	
	InitTree();
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CBUMENDLG::InitTree()
{
	m_TREE.DeleteAllItems();
	m_TREE.SetBkColor(RGB(0,0,0));
	m_TREE.SetTextColor(RGB(0,255,255));
	HTREEITEM root0=m_TREE.InsertItem("部门预览",0,1,TVI_ROOT,TVI_LAST);
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	rs.Open(CRecordset::forwardOnly,"select * from 部门");
	CString str;
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("NAME",str);
		m_TREE.InsertItem(str,0,1,root0,TVI_LAST);
		rs.MoveNext();
	}
	m_TREE.Expand(root0,-1);

}

void CBUMENDLG::OnAdd()
{
	// TODO: Add your control notification handler code here
	
	int ADDflag=0;
	UpdateData();
	if(m_NAME=="")
	{
		MessageBox("请输入部门名称!");
	}
	else
	{
		CDatabase dbtmp;
		dbtmp.Open("sam人事管理");
		CRecordset rstmp(&dbtmp);
		rstmp.Open(CRecordset::forwardOnly,"select NAME from 部门");
		CString strtmp;
		while (!rstmp.IsEOF())
		{
			rstmp.GetFieldValue("NAME",strtmp);
			strtmp.TrimRight();
			m_NAME.TrimRight();
			if(m_NAME==strtmp)
			{
				ADDflag=1;
			}
			rstmp.MoveNext();
		}
		rstmp.Close();
		if(ADDflag==1)
		{
			MessageBox("该部门已存在!");
		}
		else
			{
				CDatabase db;
				db.Open("sam人事管理");
				CString strSQL;
				strSQL=" insert into  部门 values('','"+m_NAME+"','','')";
				db.ExecuteSQL(strSQL);
				db.Close();
				MessageBox("部门添加成功!");
				InitTree();
			}
		dbtmp.Close(); 
	}
}

CString m_strNAME;
void CBUMENDLG::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	HTREEITEM hsel=m_TREE.GetSelectedItem();
	int i =m_TREE.ItemHasChildren(hsel);
	if(i==0)
	{
		m_strNAME=m_TREE.GetItemText(hsel);
		m_NAME=m_strNAME;
	}
	UpdateData(FALSE);
	*pResult = 0;
}


void CBUMENDLG::OnEdit() 
{
	// TODO: Add your control notification handler code here
	if(m_NAME=="")
	{
		MessageBox("请选择部门");
	}
	else
	{
		UpdateData();
		int EDITflag=0;
		CDatabase dbtmp;
		dbtmp.Open("sam人事管理");
		CRecordset rstmp(&dbtmp);
		rstmp.Open(CRecordset::forwardOnly,"select NAME from 部门");
		CString strtmp;
		while (!rstmp.IsEOF())
		{
			rstmp.GetFieldValue("NAME",strtmp);
			strtmp.TrimRight();
			m_NAME.TrimRight();
			if(m_NAME==strtmp)
			{
				EDITflag=1;
			}
			rstmp.MoveNext();
		}
		rstmp.Close();
		if(EDITflag==1)
		{
			MessageBox("该部门已存在!");
		}
		else
			if(m_NAME!=m_strNAME)
			{
				if(IDYES==MessageBox("修改部门名称,该部门所有员工的部门属性也随之改变!\r               确认修改该部门?","确认",MB_YESNO))
				{
					CDatabase db;
					db.Open("sam人事管理");
					CString strSQL;
					strSQL=" update  部门 set NAME='"+m_NAME+"' where NAME='"+m_strNAME+"' ";
					db.ExecuteSQL(strSQL);
					strSQL=" update  员工 set DEPARTMENT='"+m_NAME+"' where DEPARTMENT='"+m_strNAME+"' ";
					db.ExecuteSQL(strSQL);
					db.Close();
					MessageBox("部门修改成功,原部门员工已移至新部门");
					InitTree();
				}
			}
			dbtmp.Close();
	}
}

void CBUMENDLG::OnDelete() 
{
	// TODO: Add your control notification handler code here
	if(m_NAME=="")
	{
		MessageBox("请选择部门!");
	}
	else
	{
		if(IDYES==MessageBox("确认删除该部门?该操作不可恢复","确认",MB_YESNO))
		{
			CDatabase db;
			db.Open("sam人事管理");
			CString strSQL;
			strSQL=" delete from 部门  where NAME='"+m_strNAME+"' ";
			db.ExecuteSQL(strSQL);
			MessageBox("部门删除成功\r请重新编辑该部门员工信息");
			InitTree();
			db.Close();
		}
	}
	
}

⌨️ 快捷键说明

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