📄 tongjidlg.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 + -