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

📄 tongjidlg.cpp

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CTONGJIDLG dialog


CTONGJIDLG::CTONGJIDLG(CWnd* pParent /*=NULL*/)
	: CDialog(CTONGJIDLG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTONGJIDLG)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CTONGJIDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTONGJIDLG)
	DDX_Control(pDX, IDC_TREE, m_TREE);
	DDX_Control(pDX, IDC_LISTCTR, m_LISTCTR);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTONGJIDLG, CDialog)
	//{{AFX_MSG_MAP(CTONGJIDLG)
	ON_WM_NCMOUSEMOVE() 
	ON_WM_NCLBUTTONDOWN()
	ON_WM_PAINT()
	ON_WM_CTLCOLOR()
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, OnSelchangedTree)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTONGJIDLG message handlers

BOOL CTONGJIDLG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_TREE.SetBkColor(RGB(0,0,0));
	m_TREE.SetTextColor(RGB(0,255,255));
	HTREEITEM root=m_TREE.InsertItem("统计对象",0,1,TVI_ROOT,TVI_LAST);
	HTREEITEM rootBUMEN=m_TREE.InsertItem("部门|DEPARTMENT",0,1,root,TVI_LAST);
	HTREEITEM rootXUELI=m_TREE.InsertItem("学历|EDU_LEVEL",0,1,root,TVI_LAST);
	HTREEITEM rootZHIWU=m_TREE.InsertItem("职务|JOB",0,1,root,TVI_LAST);
	HTREEITEM rootZHUANGTAI=m_TREE.InsertItem("状态|STATE",0,1,root,TVI_LAST);
	HTREEITEM rootSEX=m_TREE.InsertItem("性别|SEX",0,1,root,TVI_LAST);
	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	rs.Open(CRecordset::forwardOnly,"select NAME from 部门");
	CString strtmp;
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("NAME",strtmp);
		strtmp.TrimRight();
		m_TREE.InsertItem(strtmp,0,1,rootBUMEN,TVI_LAST);
		rs.MoveNext();
	}
	rs.Close();

	rs.Open(CRecordset::forwardOnly,"select EDU_LEVEL from 学历");
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("EDU_LEVEL",strtmp);
		strtmp.TrimRight();
		m_TREE.InsertItem(strtmp,0,1,rootXUELI,TVI_LAST);
		rs.MoveNext();
	}
	rs.Close();

	rs.Open(CRecordset::forwardOnly,"select SHUOMING from 职务");
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("SHUOMING",strtmp);
		strtmp.TrimRight();
		m_TREE.InsertItem(strtmp,0,1,rootZHIWU,TVI_LAST);
		rs.MoveNext();
	}
	rs.Close();

	m_TREE.InsertItem("试用期",0,1,rootZHUANGTAI,TVI_LAST);
	m_TREE.InsertItem("正式员工",0,1,rootZHUANGTAI,TVI_LAST);
	m_TREE.InsertItem("离职",0,1,rootZHUANGTAI,TVI_LAST);

	m_TREE.InsertItem("男",0,1,rootSEX,TVI_LAST);
	m_TREE.InsertItem("女",0,1,rootSEX,TVI_LAST);


	DWORD dwStyle;
	dwStyle=LVS_SHOWSELALWAYS;
	m_LISTCTR.SetExtendedStyle(dwStyle);
	m_LISTCTR.SetBkColor(RGB(0,0,0));
	m_LISTCTR.SetTextBkColor(RGB(0,0,0));
	m_LISTCTR.SetTextColor(RGB(0,255,255));

	m_OK.AutoLoad(IDOK,this);
	m_CANCLE.AutoLoad(IDCANCLE,this);
	m_OK.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDOK);
	m_CANCLE.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDCANCLE);








	db.Close();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CTONGJIDLG::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 CTONGJIDLG::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 CTONGJIDLG::OnPaint() 
{
	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();
}

HBRUSH CTONGJIDLG::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));     
	}  
	
	if(nCtlColor==CTLCOLOR_LISTBOX)   
	{      
		hbr=(HBRUSH)::CreateSolidBrush(RGB(0,0,0)); 
		pDC->SetBkColor(RGB(0,0,0));
		pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(RGB(0,255,255));
		return  hbr;
	}  	
	
	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 ;
	}   

	return hbr ;
}


void CTONGJIDLG::InitListCTR(CString str)
{

}

void CTONGJIDLG::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	CString
		strLEAF,//叶子字符串
		strPARENT;//次叶子字符串
	HTREEITEM hsel=m_TREE.GetSelectedItem();
	int i=m_TREE.ItemHasChildren(hsel);
	if(i==0)
	{
		strLEAF=m_TREE.GetItemText(hsel);
		//strLEAF.TrimLeft();
		HTREEITEM hparent=m_TREE.GetParentItem(hsel);
		strPARENT=m_TREE.GetItemText(hparent);
		strPARENT.TrimRight();
		int i=strPARENT.Find('|');
		strPARENT=strPARENT.Mid(i+1);
		InitList(strPARENT,strLEAF);
	}
	
	*pResult = 0;
}

void CTONGJIDLG::InitList(CString strPARENT, CString strLEAF)
{

	CDatabase db;
	db.Open("sam人事管理");
	CRecordset rs(&db);
	rs.Open(CRecordset::forwardOnly,"select * from 员工 where "+strPARENT+" ='"+strLEAF+"' ");
	m_LISTCTR.DeleteAllItems();
	m_LISTCTR.DeleteColumn(0);
	m_LISTCTR.DeleteColumn(0);
	int i=0;
	CString strCOUNT;
	if(rs.IsEOF())
	{
		m_LISTCTR.InsertColumn(0,strPARENT,LVCFMT_LEFT,100,0);
		m_LISTCTR.InsertColumn(1,"人数",LVCFMT_LEFT,100,0);
		strCOUNT.Format("%d",i);
		m_LISTCTR.InsertItem(0,strLEAF);
		m_LISTCTR.SetItemText(0,1,strCOUNT);
	}else
	{
		while(!rs.IsEOF())
		{
			if(i==0)
			{
				m_LISTCTR.InsertColumn(0,strPARENT,LVCFMT_LEFT,100,0);
				m_LISTCTR.InsertColumn(1,"人数",LVCFMT_LEFT,100,0);
			}
			
			i++;
			rs.MoveNext();
		}
		strCOUNT.Format("%d",i);
		m_LISTCTR.InsertItem(0,strLEAF);
		m_LISTCTR.SetItemText(0,1,strCOUNT);
	}
}

⌨️ 快捷键说明

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