// Dlg_CardInput.cpp : 实现文件 // #include "stdafx.h" #include "StoneU_Door.h" #include "Dlg_CardInput.h" #include ".\dlg_cardinput.h" #include "GlobalFun.h" #include "Global.h" #include "mdlProject.h" #include "DBConnection.h" // CDlg_CardInput 对话框 IMPLEMENT_DYNAMIC(CDlg_CardInput, CDialog) CDlg_CardInput::CDlg_CardInput(CWnd* pParent /*=NULL*/) : CDialog(CDlg_CardInput::IDD, pParent) { } CDlg_CardInput::~CDlg_CardInput() { } void CDlg_CardInput::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST, m_ctrlList); DDX_Control(pDX, IDC_BTN_DELETE, m_Btn_Del); DDX_Control(pDX, IDC_BTN_IMPORT, m_Btn_Add); DDX_Control(pDX, IDCANCEL, m_Btn_Exit); } BEGIN_MESSAGE_MAP(CDlg_CardInput, CDialog) ON_BN_CLICKED(IDC_BTN_DELETE, OnBnClickedBtnDelete) ON_BN_CLICKED(IDC_BTN_IMPORT, OnBnClickedBtnImport) ON_WM_CTLCOLOR() ON_WM_ERASEBKGND() END_MESSAGE_MAP() // CDlg_CardInput 消息处理程序 BOOL CDlg_CardInput::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 GetDlgItem(IDC_STA_MSG)->SetWindowText( "注:Excel表中的第一行数据不在操作范围,如果第一行是数据,请在第一行之前插入空行。\r\n "\ " 列表的第一列为用户姓名,第二列为卡号码,第三列为部门,第四列为工号,第五列为备注。" ); UpdateData( false ); InitList(); ReadExcelToList( &m_ctrlList,m_sExcelPath ); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } int CDlg_CardInput::InitList(void) { //m_List_Info.InsertColumn( 0, "执行时刻" ); //m_List_Info.InsertColumn( 1, "人员信息" ); //m_List_Info.InsertColumn( 2, "描述" ); //m_List_Info.InsertColumn( 3, "信息" ); //m_List_Info.SetColumnWidth( 0, 120 ); //m_List_Info.SetColumnWidth( 1, 200); //m_List_Info.SetColumnWidth( 2, 200); //m_List_Info.SetColumnWidth( 3, 650); //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色 //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色 //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色 //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色 //m_List_Rule.SetRowHeigt(25); //设置行高度 //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度 //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应 //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色 //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色 m_ctrlList.SetHeaderBKColor(213,222,242,8); //设置头部背景色 ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度 //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色 //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色 m_ctrlList.InsertColumn(0,"姓名",LVCFMT_LEFT,130); m_ctrlList.InsertColumn(1,g_strCardNumber,LVCFMT_LEFT,130); m_ctrlList.InsertColumn(2,g_strClass,LVCFMT_LEFT,130); m_ctrlList.InsertColumn(3,g_strJobNumber,LVCFMT_LEFT,130); m_ctrlList.InsertColumn(4,"备注",LVCFMT_LEFT,200); SetWindowLong(m_ctrlList.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE); m_ctrlList.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格 ::SendMessage(m_ctrlList.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); m_ctrlList.SetRowHeigt( 20 ); return 0; } void CDlg_CardInput::OnBnClickedBtnDelete() { int iListCount = m_ctrlList.GetItemCount(); POSITION pos = m_ctrlList.GetFirstSelectedItemPosition(); int nListSel = m_ctrlList.GetNextSelectedItem(pos); if(nListSel>=iListCount || nListSel==-1) { MessageBox( g_strChooseThenDel, g_strTip, MB_ICONINFORMATION); return; } if( MessageBox( "确定要删除所选的行?", g_strTip, MB_YESNO|MB_ICONINFORMATION)!=IDYES ) return; pos = m_ctrlList.GetFirstSelectedItemPosition(); if(NULL == pos) { } else { while(pos) { int nItem = m_ctrlList.GetNextSelectedItem(pos); m_ctrlList.DeleteItem(nItem); pos = m_ctrlList.GetFirstSelectedItemPosition(); } } } void CDlg_CardInput::OnBnClickedBtnImport() { UpdateData(); int nIndex=0; CString s[5]; for( int i=m_ctrlList.GetItemCount()-1;i>=0;i-- ) { s[0] = m_ctrlList.GetItemText( i,0 ); s[0] = s[0].TrimLeft(); s[1] = m_ctrlList.GetItemText( i,1 ); s[1] = s[1].TrimLeft(); s[2] = m_ctrlList.GetItemText( i,2 ); s[2] = s[2].TrimLeft(); s[3] = m_ctrlList.GetItemText( i,3 ); s[3] = s[3].TrimLeft(); s[4] = m_ctrlList.GetItemText( i,4 ); s[4] = s[4].TrimLeft(); nIndex = InsertCardInfo_INPUT( (char *)(LPCTSTR)s[0],(char *)(LPCTSTR)s[1],(char *)(LPCTSTR)s[2],(char *)(LPCTSTR)s[3],(char *)(LPCTSTR)s[4] ); if( -1!=nIndex ) { m_ctrlList.DeleteItem( i ); CString sIndex; sIndex.Format("%d",nIndex ); g_pDlgMain->m_pDlg_Card->m_List_Card.InsertItem( 0,sIndex ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,1," "+s[0] ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,2," "+s[1] ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,3," "+s[2] ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,4," "+s[3] ); g_pDlgMain->m_pDlg_Card->m_List_Card.SetItemText( 0,5," "+s[4] ); for( int i=0;iGetDlgCtrlID(); //HBRUSH B1 = CreateSolidBrush( g_ColorGround ); HBRUSH B1 = CreateSolidBrush( g_Color3 ); CFont font; font.CreatePointFont( 120,"宋体" ); if(nID == IDC_STA_MSG) { pDC->SelectObject(&font); pDC->SetTextColor(RGB(255, 0, 0)); pDC->SetBkMode( TRANSPARENT ); //pDC->SelectObject(pOldFont); DeleteObject( font ); DeleteObject( B1 ); return B1; } DeleteObject( font ); DeleteObject( B1 ); // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } BOOL CDlg_CardInput::OnEraseBkgnd(CDC* pDC) { CBrush br1; CRect rect; GetWindowRect(&rect); ScreenToClient(&rect); br1.CreateSolidBrush(g_Color3); pDC->FillRect(rect,&br1); DeleteObject( br1 ); return TRUE; //return CDialog::OnEraseBkgnd(pDC); }