// InfoDlg.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "InfoDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CInfoDlg dialog #include "MainFrm.h" #include "ProcessSocket.h" CInfoDlg::CInfoDlg(CWnd* pParent /*=NULL*/) : CDialog(CInfoDlg::IDD, pParent) , m_strOverTime(_T("")) { //{{AFX_DATA_INIT(CInfoDlg) m_strAddress = _T(""); m_strCreateTime = _T(""); m_strEmail = _T(""); m_strFax = _T(""); m_strHttp = _T(""); m_strLXR = _T(""); m_strMobile = _T(""); m_strName = _T(""); m_strPostCode = _T(""); m_strTel = _T(""); m_strTotal = _T(""); m_strUsed = _T(""); m_strAddedCorp = _T(""); m_strAddCorpCount = _T(""); m_strSName = _T(""); //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; m_lKFID = 0; m_strMmsUsed = _T(""); m_bShowOverTimeWarning = false; } void CInfoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CInfoDlg) DDX_Control(pDX, IDC_INFO_MSG, m_E_Msg); DDX_Control(pDX, IDC_INFO_LIST, m_wndList); DDX_Text(pDX, IDC_INFO_ADDRESS, m_strAddress); DDX_Text(pDX, IDC_INFO_CREATETIME, m_strCreateTime); DDX_Text(pDX, IDC_INFO_EMAIL, m_strEmail); DDX_Text(pDX, IDC_INFO_FAX, m_strFax); DDX_Text(pDX, IDC_INFO_HTTP, m_strHttp); DDX_Text(pDX, IDC_INFO_LXR, m_strLXR); DDX_Text(pDX, IDC_INFO_MOBILE, m_strMobile); DDX_Text(pDX, IDC_INFO_NAME, m_strName); DDX_Text(pDX, IDC_INFO_POSTCODE, m_strPostCode); DDX_Text(pDX, IDC_INFO_TEL, m_strTel); DDX_Text(pDX, IDC_INFO_TOTAL, m_strTotal); DDX_Text(pDX, IDC_INFO_USED, m_strUsed); DDX_Text(pDX, IDC_INFO_ADDEDCORP, m_strAddedCorp); DDX_Text(pDX, IDC_INFO_ADDCORPCOUNT, m_strAddCorpCount); DDX_Text(pDX, IDC_INFO_SNAME, m_strSName); //}}AFX_DATA_MAP DDX_Text(pDX, IDC_INFO_MMSUSED, m_strMmsUsed); DDX_Text(pDX, IDC_INFO_OVERTIME, m_strOverTime); } BEGIN_MESSAGE_MAP(CInfoDlg, CDialog) //{{AFX_MSG_MAP(CInfoDlg) ON_WM_SIZE() ON_NOTIFY(NM_RCLICK, IDC_INFO_LIST, OnRclickInfoList) //}}AFX_MSG_MAP ON_COMMAND( MENU_INFO_REFRESH , On_User_Refresh ) ON_BN_CLICKED(IDC_REFRESH, &CInfoDlg::OnBnClickedRefresh) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CInfoDlg message handlers void CInfoDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); /* if ( m_bInit ) { m_wndList.MoveWindow( 0 , 0 , cx,cy-200); m_E_Msg.MoveWindow( 0 , cy-200 , cx , 200 ); } */ } BOOL CInfoDlg::OnInitDialog() { CDialog::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; //初始化List m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_INFO) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("序号,50; 企业名称,160;用户名称, 80; 版 本,60;登录次数,75;上线时间,75;IP地址,110")); m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); m_bInit = true; #ifdef MANAGER_VER_YWY GetDlgItem(IDC_INFO_SS1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_USED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS5)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_ADDCORPCOUNT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS4)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_CREATETIME)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS6)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_ADDEDCORP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS7)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_MMSUSED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_OVERTIME)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_OVERTIME_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_REFRESH)->ShowWindow(SW_HIDE); #endif return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL CInfoDlg::RefreshInfo() { #ifdef MANAGER_VER_YWY REQ_GetYWY2 * pSee = new REQ_GetYWY2; pSee->lYWYID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame(SMSFUNC_GETYWY2,(BYTE*)(pSee),sizeof(REQ_GetYWY2) ); #else #ifdef MANAGER_VER_HF REQ_GetKF * pSee = new REQ_GetKF; pSee->lKFID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame(SMSFUNC_GETKF,(BYTE*)(pSee),sizeof(REQ_GetKF) ); #else REQ_Agent_See2 * pSee = new REQ_Agent_See2; pSee->lAgentID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame(SMSFUNC_AGENT_SEE2,(BYTE*)(pSee),sizeof(REQ_Agent_See2) ); #endif #endif return true; } BOOL CInfoDlg::ProcessSocket(Socket_Head *pHead) { if (pHead->lFuncType == SMSFUNC_AGENT_SEE2) { m_bRefresh = true; //已经刷新过 ANS_Agent_See * pSee = (ANS_Agent_See *)pHead->pFrame; ANS_Agent_SeeData * pData = (ANS_Agent_SeeData *)(pHead->pFrame+sizeof(ANS_Agent_See)); if ( pSee->lCount >0 ) { m_strName.Format( _T("%s(%d)"), pData->szName,pData->lAgentID); m_strSName = pData->szTaxNum; m_strAddress = pData->szAddress; m_strPostCode=pData->szPostcode; m_strHttp = pData->szHttp; m_strLXR = pData->szLXRName; m_strTel = pData->szTel; m_strMobile=pData->szMobile; m_strFax = pData->szFax; m_strEmail= pData->szEmail; m_strUsed.Format(_T("%10d条"),(long)(pData->fUsed*10.0f)); m_strMmsUsed.Format(_T("%10d条"),pData->lMmsUsed); //m_strTotal.Format(_T("%10.2f"),pData->fTotal); m_strCreateTime.Format( _T("%04d.%02d.%02d") , pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay); m_strOverTime.Format(_T("%04d.%02d.%02d"), pData->tOvrTime.wYear, pData->tOvrTime.wMonth, pData->tOvrTime.wDay); m_strAddCorpCount.Format( _T("%6d"),pData->lAddCorpCount ); m_strAddedCorp.Format( _T("%6d"),pData->lAddedCorp ); m_pMainFrame->m_fUsed = pData->fUsed; m_pMainFrame->m_lMmsUsed = pData->lMmsUsed; m_pMainFrame->m_lAddCorpCount = pData->lAddCorpCount; m_pMainFrame->m_lAddedCorp = pData->lAddedCorp; m_pMainFrame->m_strAgentName = m_strName; m_pMainFrame->m_strSName = m_strSName; m_pMainFrame->m_bTest = pData->bTest; UpdateData(false); if (!m_bShowOverTimeWarning) { COleDateTime tOvrDate(pData->tOvrTime); if (tOvrDate.GetStatus() == COleDateTime::valid) { CString str; if ((tOvrDate - COleDateTime::GetCurrentTime()) <= COleDateTimeSpan(30, 0, 0, 0) && (tOvrDate - COleDateTime::GetCurrentTime()) > COleDateTimeSpan(0, 0, 0, 0)) { m_bShowOverTimeWarning = true; str.Format( _T("你的帐号将于%04d年%02d月%02d日过期,请尽快续期!"), tOvrDate.GetYear(), tOvrDate.GetMonth(), tOvrDate.GetDay()); MessageBox(str, _T("提示"), MB_ICONASTERISK); } else { if ((tOvrDate - COleDateTime::GetCurrentTime()) <= COleDateTimeSpan(0, 0, 0, 0)) { m_bShowOverTimeWarning = true; str.Format(_T("你的帐号已于%04d年%02d月%02d日过期,需要续期后才能使用!"), tOvrDate.GetYear(), tOvrDate.GetMonth(), tOvrDate.GetDay()); MessageBox(str, _T("提示"), MB_ICONASTERISK); } } } } } } if (pHead->lFuncType == SMSFUNC_GETYWY2) { m_bRefresh = true; //已经刷新过 ANS_GetYWY2 * pSee = (ANS_GetYWY2 *)pHead->pFrame; ANS_GetYWYData * pData = (ANS_GetYWYData *)(pHead->pFrame+sizeof(ANS_GetYWY2)); if ( pSee->lCount >0 ) { m_lKFID = pData->lKFID; //取客服ID GetDlgItem(IDC_INFO_SS11)->SetWindowText(_T("登录名")); GetDlgItem(IDC_INFO_NAME)->SetWindowText(pData->szLoginName); GetDlgItem(IDC_INFO_SS12)->SetWindowText(_T("姓名")); GetDlgItem(IDC_INFO_ADDRESS)->SetWindowText(pData->szName); GetDlgItem(IDC_INFO_SS13)->SetWindowText(_T("昵称")); GetDlgItem(IDC_INFO_POSTCODE)->SetWindowText(pData->szNickName); GetDlgItem(IDC_INFO_SS14)->SetWindowText(_T("部门")); GetDlgItem(IDC_INFO_HTTP)->SetWindowText(pData->szBranch); GetDlgItem(IDC_INFO_SS15)->SetWindowText(_T("职务")); GetDlgItem(IDC_INFO_LXR)->SetWindowText(pData->szJob); GetDlgItem(IDC_INFO_SS16)->SetWindowText(_T("电话")); GetDlgItem(IDC_INFO_TEL)->SetWindowText(pData->szTel); GetDlgItem(IDC_INFO_SS17)->SetWindowText(_T("手机")); GetDlgItem(IDC_INFO_MOBILE)->SetWindowText(pData->szMobile); GetDlgItem(IDC_INFO_SS18)->SetWindowText(_T("Email")); GetDlgItem(IDC_INFO_FAX)->SetWindowText(pData->szEmail); GetDlgItem(IDC_INFO_SS19)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_EMAIL)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS20)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SNAME)->ShowWindow(SW_HIDE); UpdateData(true); UpdateData(false); } } if (pHead->lFuncType == SMSFUNC_GETKF) { m_bRefresh = true; //已经刷新过 ANS_GetKF * pSee = (ANS_GetKF *)pHead->pFrame; ANS_GetKFData * pData = (ANS_GetKFData *)(pHead->pFrame+sizeof(ANS_GetKF)); if ( pSee->lCount >0 ) { m_lKFID = pData->lKFID; //取客服ID GetDlgItem(IDC_INFO_SS11)->SetWindowText(_T("登录名")); GetDlgItem(IDC_INFO_NAME)->SetWindowText(pData->szLoginName); GetDlgItem(IDC_INFO_SS12)->SetWindowText(_T("姓名")); GetDlgItem(IDC_INFO_ADDRESS)->SetWindowText(pData->szName); GetDlgItem(IDC_INFO_SS13)->SetWindowText(_T("昵称")); GetDlgItem(IDC_INFO_POSTCODE)->SetWindowText(pData->szNickName); GetDlgItem(IDC_INFO_SS14)->SetWindowText(_T("部门")); GetDlgItem(IDC_INFO_HTTP)->SetWindowText(pData->szBranch); GetDlgItem(IDC_INFO_SS15)->SetWindowText(_T("职务")); GetDlgItem(IDC_INFO_LXR)->SetWindowText(pData->szJob); GetDlgItem(IDC_INFO_SS16)->SetWindowText(_T("电话")); GetDlgItem(IDC_INFO_TEL)->SetWindowText(pData->szTel); GetDlgItem(IDC_INFO_SS17)->SetWindowText(_T("手机")); GetDlgItem(IDC_INFO_MOBILE)->SetWindowText(pData->szMobile); GetDlgItem(IDC_INFO_SS18)->SetWindowText(_T("Email")); GetDlgItem(IDC_INFO_FAX)->SetWindowText(pData->szEmail); GetDlgItem(IDC_INFO_SS19)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_EMAIL)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SS20)->ShowWindow(SW_HIDE); GetDlgItem(IDC_INFO_SNAME)->ShowWindow(SW_HIDE); UpdateData(true); UpdateData(false); } } return true; } BOOL CInfoDlg::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CInfoDlg::ReHide() { ShowWindow(SW_HIDE); return true; } void CInfoDlg::Close() { } void CInfoDlg::ShowRMenu() { if (!m_pMainFrame->GetUserPurview(PURVIEW_INFO_SEE,false)) //没有查看权限 return ; CMenu menu; menu.CreatePopupMenu(); //刷新 menu.AppendMenu(MF_STRING , MENU_INFO_REFRESH, _T(" 刷 新 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } void CInfoDlg::On_User_Refresh() { RefreshInfo(); } void CInfoDlg::OnRclickInfoList(NMHDR* pNMHDR, LRESULT* pResult) { ShowRMenu(); *pResult = 0; } void CInfoDlg::OnBnClickedRefresh() { this->RefreshInfo(); }