// DLG_Commend.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_Commend.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Commend dialog #include "MainFrm.h" DLG_Commend::DLG_Commend(CWnd* pParent /*=NULL*/) : CDialog(DLG_Commend::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Commend) m_strEmail = _T(""); m_strMobile = _T(""); m_strName = _T(""); m_strTel = _T(""); m_strTJ_BZ = _T(""); m_strTJ_CorpName = _T(""); m_strTJ_Email = _T(""); m_strTJ_Mobile = _T(""); m_strTJ_Name = _T(""); m_strTJ_Tel = _T(""); //}}AFX_DATA_INIT m_pMainFrame = (CMainFrame *)pParent; memset(&m_GetMy, 0 , sizeof(m_GetMy)); m_hHarrow = AfxGetApp()->LoadCursor( IDC_C_HAND ); m_lChickCount=4; m_pClieck[0].top = 69; m_pClieck[0].bottom= 103; m_pClieck[0].left = 369; m_pClieck[0].right = 493; m_pClieck[1].top = 183; m_pClieck[1].bottom= 217; m_pClieck[1].left = 369; m_pClieck[1].right = 493; m_pClieck[2].top = 297; m_pClieck[2].bottom= 331; m_pClieck[2].left = 369; m_pClieck[2].right = 493; m_pClieck[3].top = 360; m_pClieck[3].bottom= 400; m_pClieck[3].left = 356; m_pClieck[3].right = 509; } void DLG_Commend::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Commend) DDX_Text(pDX, IDC_COMMEND_EMAIL, m_strEmail); DDV_MaxChars(pDX, m_strEmail, 60); DDX_Text(pDX, IDC_COMMEND_MOBILE, m_strMobile); DDV_MaxChars(pDX, m_strMobile, 30); DDX_Text(pDX, IDC_COMMEND_NAME, m_strName); DDV_MaxChars(pDX, m_strName, 30); DDX_Text(pDX, IDC_COMMEND_TEL, m_strTel); DDV_MaxChars(pDX, m_strTel, 30); DDX_Text(pDX, IDC_COMMEND_TJ_BZ, m_strTJ_BZ); DDV_MaxChars(pDX, m_strTJ_BZ, 200); DDX_Text(pDX, IDC_COMMEND_TJ_CORPNAME, m_strTJ_CorpName); DDV_MaxChars(pDX, m_strTJ_CorpName, 60); DDX_Text(pDX, IDC_COMMEND_TJ_EMAIL, m_strTJ_Email); DDV_MaxChars(pDX, m_strTJ_Email, 60); DDX_Text(pDX, IDC_COMMEND_TJ_MOBILE, m_strTJ_Mobile); DDV_MaxChars(pDX, m_strTJ_Mobile, 30); DDX_Text(pDX, IDC_COMMEND_TJ_NAME, m_strTJ_Name); DDV_MaxChars(pDX, m_strTJ_Name, 30); DDX_Text(pDX, IDC_COMMEND_TJ_TEL, m_strTJ_Tel); DDV_MaxChars(pDX, m_strTJ_Tel, 30); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Commend, CDialog) //{{AFX_MSG_MAP(DLG_Commend) ON_BN_CLICKED(IDC_COMMEND_MYCOMMEND, OnCommendMycommend) ON_BN_CLICKED(IDC_COMMEND_URL, OnCommendUrl) ON_BN_CLICKED(IDC_COMMEND_DH, OnCommendDh) ON_WM_ERASEBKGND() ON_WM_CTLCOLOR() ON_WM_SETCURSOR() ON_WM_LBUTTONUP() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Commend message handlers void DLG_Commend::OnOK() { if ( !UpdateData(true) ) return ; if ( m_strName.GetLength()<3 ) { MessageBox(_T("漏输字段,请输入你的姓名!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_COMMEND_NAME)->SetFocus(); return; } if ( m_strMobile.GetLength()<3 ) { MessageBox(_T("漏输字段,请输入你的移动电话!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_COMMEND_TEL)->SetFocus(); return; } if ( m_strTJ_CorpName.GetLength()<3 ) { MessageBox(_T("漏输字段,请输入推荐用户企业名称!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_COMMEND_TJ_CORPNAME)->SetFocus(); return; } if ( m_strTJ_Name.GetLength()<3 ) { MessageBox(_T("漏输字段,请输入推荐用户联系人姓名!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_COMMEND_TJ_NAME)->SetFocus(); return; } if ( m_strTJ_Tel.GetLength()<3 ) { MessageBox(_T("漏输字段,请输入推荐用户联系电话!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_COMMEND_TJ_TEL)->SetFocus(); return; } long lSize = sizeof(REQ_Commend_Add)+sizeof(ANS_GetCommendData); BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize); REQ_Commend_Add * pAdd = (REQ_Commend_Add *)pAddData; //头 ANS_GetCommendData * pCommendData = (ANS_GetCommendData *)(pAddData+sizeof(REQ_Commend_Add)); pCommendData->lCorpID = m_pMainFrame->m_lCorpID; pCommendData->lUserID = m_pMainFrame->m_lUserID; pCommendData->lCommendType = 0; //类型0,推荐客户 _tcscpy(pCommendData->szName , m_strName); _tcscpy(pCommendData->szTel , m_strTel); _tcscpy(pCommendData->szMobile , m_strMobile); _tcscpy(pCommendData->szEmail , m_strEmail); _tcscpy(pCommendData->szTJ_CorpName , m_strTJ_CorpName); _tcscpy(pCommendData->szTJ_Name , m_strTJ_Name); _tcscpy(pCommendData->szTJ_Tel , m_strTJ_Tel); _tcscpy(pCommendData->szTJ_Mobile , m_strTJ_Mobile); _tcscpy(pCommendData->szTJ_Email , m_strTJ_Email); _tcscpy(pCommendData->szTJ_BZ , m_strTJ_BZ); ::GetLocalTime(&pCommendData->tCreateTime); pAdd->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_COMMEND_ADD , pAddData , lSize ); //CDialog::OnOK(); } BOOL DLG_Commend::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame) { //添加 if (pHead->lFuncType == SMSFUNC_COMMEND_ADD) { ANS_Commend_Add * pAdd = (ANS_Commend_Add *)pFrame; ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_Commend_Add)); if ( pAdd->lCount == 1 ) //等于1时表示修改成功 { if ( pData->lCommendType == 1 ) { if ( pAdd->lCount == 1 ) //等于1时表示修改成功 { MessageBox(_T("你的兑换礼品已成功登记,稍后会有专人与你联系。非常感谢你对短信易的支持!") , _T("成功") , MB_ICONINFORMATION ); this->EndDialog(IDOK); } else { MessageBox(_T("你的兑换礼品登记失败,请与管理员联系!") , _T("失败") , MB_ICONWARNING ); } } else { int iRet = MessageBox(_T("你的推荐客户已成功登记,非常感谢你对短信易的支持!\r\n是否继续登记新的推荐客户?") , _T("成功") , MB_ICONQUESTION|MB_YESNO ); if ( iRet!= IDYES ) { this->EndDialog(IDOK); } else { //m_strEmail = _T(""); //m_strMobile = _T(""); //m_strName = _T(""); //m_strTel = _T(""); m_strTJ_BZ = _T(""); m_strTJ_CorpName = _T(""); m_strTJ_Email = _T(""); m_strTJ_Mobile = _T(""); m_strTJ_Name = _T(""); m_strTJ_Tel = _T(""); UpdateData(false); GetDlgItem(IDC_COMMEND_NAME)->SetFocus(); } } } else { MessageBox(_T("你的推荐客户已登记失败,请检查填写的各个字段是否异常然后重试!") , _T("失败") , MB_ICONWARNING ); } return true; } return false; } void DLG_Commend::OnCommendMycommend() { REQ_GetCommend * pCommend = new REQ_GetCommend; memset(pCommend , 0 , sizeof(REQ_GetCommend)); pCommend->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_GETCOMMEND , (BYTE*)pCommend , sizeof(REQ_GetCommend) ); } void DLG_Commend::OnCommendUrl() { CString strLink=_T("http://www.mobset.com/news/tj.asp"); ShellExecute(NULL,_T("open"),strLink,NULL,NULL,SW_SHOWNORMAL); } void DLG_Commend::OnCommendDh() { REQ_GetCommend_LP * pCommend = new REQ_GetCommend_LP; memset(pCommend , 0 , sizeof(REQ_GetCommend_LP)); pCommend->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_GETCOMMEND_LP , (BYTE*)pCommend , sizeof(REQ_GetCommend_LP) ); } void DLG_Commend::SetParam(ANS_Commend_GetMy getMy) { m_GetMy = getMy; } BOOL DLG_Commend::OnInitDialog() { CDialog::OnInitDialog(); m_strName = m_GetMy.szName; m_strTel = m_GetMy.szTel; m_strMobile = m_GetMy.szMobile; m_strEmail = m_GetMy.szEmail; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL DLG_Commend::OnEraseBkgnd(CDC* pDC) { CBrush Brush (RGB (228 , 242 , 255) ); CBrush* pOldBrush = pDC->SelectObject(&Brush); // Get the area that needs to be erased . CRect reClip; pDC->GetClipBox(&reClip); //Paint the area. pDC->PatBlt(reClip.left , reClip.top , reClip.Width ( ) , reClip.Height( ) , PATCOPY ); //Unselect brush out of device context . pDC->SelectObject(pOldBrush ); // Return nonzero to half fruther processing . return TRUE; // return CDialog::OnEraseBkgnd(pDC); } HBRUSH DLG_Commend::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor==CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkColor(RGB(228,242,255)); HBRUSH b=CreateSolidBrush(RGB(228,242,255)); return b; } // TODO: Return a different brush if the default is not desired return hbr; } BOOL DLG_Commend::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { //先判断鼠标是否在选择区域之上 if ( isMouseSel()>0 ) ::SetCursor( m_hHarrow ); else return CDialog::OnSetCursor(pWnd, nHitTest, message); return true; } void DLG_Commend::OnLButtonUp(UINT nFlags, CPoint point) { long lSel=isMouseSel(); switch(lSel) { case 1: OnCommendUrl(); break; case 2: OnCommendMycommend(); break; case 3: OnCommendDh(); break; case 4: OnOK(); break; } CDialog::OnLButtonUp(nFlags, point); } long DLG_Commend::isMouseSel() { POINT p; ::GetCursorPos(&p); this->ScreenToClient(&p); /* CDC * pDC = this->GetDC(); if ( !pDC ) return 0; */ long lSel=0; for ( int i=0 ; i< m_lChickCount ; i++ ) //先判断正常的界面 { if ( m_pClieck[i].left <=p.x && m_pClieck[i].right >=p.x && m_pClieck[i].top <=p.y && m_pClieck[i].bottom>=p.y ) { lSel =i+1; break; } } return lSel; }