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

📄 smscomdlg.cpp

📁 sms sender 察到布局图全貌
💻 CPP
📖 第 1 页 / 共 4 页
字号:
// SmsComDlg.cpp : implementation file
//

#include "stdafx.h"
#include "SmsCom.h"
#include "SmsComDlg.h"
#include "DlgProxy.h"

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


/////////////////////////////////////////////////////////////////////////////
// CMyEdit

CMyEdit::CMyEdit()
{
	//m_Brush.CreateSolidBrush(RGB(128,128,128));
	m_nColor=1;
	m_YellowBrush.CreateSolidBrush(RGB(GLRED,GLGREEN,GLBLUE));
	m_GrayBrush.CreateSolidBrush(RGB(128,128,128));
}

CMyEdit::~CMyEdit()
{
}

void CMyEdit::SetColor(int nColor)
{
  m_nColor=nColor;
}

BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
	//{{AFX_MSG_MAP(CMyEdit)
	ON_WM_CTLCOLOR_REFLECT()
	ON_WM_ERASEBKGND()
	ON_WM_VSCROLL()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyEdit message handlers

HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor) 
{
	// TODO: Change any attributes of the DC here
	if(m_nColor==1){
		pDC->SetBkMode(TRANSPARENT);
		CRect r;
		GetClientRect(r);
		if(r.Width()<256)
			if(((CSmsComDlg*)AfxGetMainWnd())->Is256()==TRUE)
				return NULL;
			else
				return (HBRUSH)m_YellowBrush.GetSafeHandle();
		else{
			pDC->SetTextColor((COLORREF)RGB(255,255,255));
			return (HBRUSH)m_GrayBrush.GetSafeHandle();
		}
	}
	else
		return NULL;
}

BOOL CMyEdit::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	CRect r;
	GetClientRect(r);
	::FillRect(pDC->m_hDC,CRect(0,0,r.Width(),r.Height()),CBrush(RGB(255,255,224)));
//		CDC* pMemDC=new CDC;
//		CBitmap* pBMP=new CBitmap;
//		pBMP->LoadBitmap(IDB_DOG);
//		pMemDC->CreateCompatibleDC(pDC);
//		pMemDC->SelectObject(pBMP);
//		pDC->BitBlt(0,0,r.Width(),r.Height(),pMemDC,0,0,SRCCOPY);
//		delete pMemDC;
//		delete pBMP;
	return FALSE;
}

void CMyEdit::AppendText(CString sMsg, int nColor)
{
	int nLen=GetWindowTextLength();
	if(nLen>0)
		sMsg="\r\n"+sMsg;
	SetColor(nColor);
	SetFocus();
	SetSel(nLen,nLen);
	ReplaceSel(sMsg);
	Invalidate();
}

void CMyEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	Invalidate();
	CEdit::OnVScroll(nSBCode, nPos, pScrollBar);
}

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSmsComDlg dialog
const char CSmsComDlg::s_profileHeading[]="Settings";
const char CSmsComDlg::s_profileMoniUnitName[]="MoniUnitName";

IMPLEMENT_DYNAMIC(CSmsComDlg, CDialog);

CSmsComDlg::CSmsComDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSmsComDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSmsComDlg)
	m_szPhoneCode = _T("");
	m_szSMSCCode = _T("");
	m_szSMText = _T("");
	m_nSMTextCounter = 0;
	m_szCurSettingPrompt = _T("");
	m_szInterAreaMTCode = _T("");
	m_szInterAreaSMCCode = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_pAutoProxy = NULL;

	m_nBaudList[0]=2400;
	m_nBaudList[1]=4800;
	m_nBaudList[2]=9600;
	m_nBaudList[3]=14400;
	m_nBaudList[4]=19200;
	m_nBaudList[5]=28800;
	m_nBaudList[6]=38400;

	m_nReselCenterBtnFlag=1;//1-修改,2-存档

	m_nCodingType=0;//0-英文,1-中文
}

CSmsComDlg::~CSmsComDlg()
{
	// If there is an automation proxy for this dialog, set
	//  its back pointer to this dialog to NULL, so it knows
	//  the dialog has been deleted.
	if (m_pAutoProxy != NULL)
		m_pAutoProxy->m_pDialog = NULL;
}

void CSmsComDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSmsComDlg)
	DDX_Control(pDX, IDC_MSG_TIPS, m_ctrlMsgTipsEdt);
	DDX_Control(pDX, IDC_CENTER_NAME, m_ctrlCenterName);
	DDX_Control(pDX, IDC_SNDSM_LIST, m_ctrlSndSMList);
	DDX_Control(pDX, IDC_BAUDLIST_COMBO, m_ctrlBaudSel);
	DDX_Control(pDX, IDC_COMLIST_COMBO, m_ctrlComSel);
	DDX_Control(pDX, IDC_MSCOMM1, m_ctrlSMSCom);
	DDX_Text(pDX, IDC_PHONE_CODE_EDIT, m_szPhoneCode);
	DDX_Text(pDX, IDC_SMSC_CODE_EDIT, m_szSMSCCode);
	DDV_MaxChars(pDX, m_szSMSCCode, 20);
	DDX_Text(pDX, IDC_SM_TEXT_EDIT, m_szSMText);
	DDV_MaxChars(pDX, m_szSMText, 160);
	DDX_Text(pDX, IDC_SMTEXT_CUNTER_EDIT, m_nSMTextCounter);
	DDX_Text(pDX, IDC_CURSETTING_PROMPT_EDIT, m_szCurSettingPrompt);
	DDX_Text(pDX, IDC_INTER_AREA_MTCODE_EDIT, m_szInterAreaMTCode);
	DDV_MaxChars(pDX, m_szInterAreaMTCode, 3);
	DDX_Text(pDX, IDC_INTER_AREA_SMCCODE_EDIT, m_szInterAreaSMCCode);
	DDV_MaxChars(pDX, m_szInterAreaSMCCode, 3);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CSmsComDlg, CDialog)
	//{{AFX_MSG_MAP(CSmsComDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_CLOSE_COM_BUTTON, OnCloseComButton)
	ON_BN_CLICKED(IDC_INIT_COM_BUTTON, OnInitComButton)
	ON_BN_CLICKED(IDC_SNDSMS_BUTTON, OnSndsmsButton)
	ON_BN_CLICKED(IDC_OK, OnClickedOk)
	ON_EN_CHANGE(IDC_SM_TEXT_EDIT, OnChangeSmTextEdit)
	ON_CBN_SELCHANGE(IDC_COMLIST_COMBO, OnSelchangeComlistCombo)
	ON_CBN_SELCHANGE(IDC_BAUDLIST_COMBO, OnSelchangeBaudlistCombo)
	ON_BN_CLICKED(IDC_SETTING_BUTTON, OnSettingButton)
	ON_BN_CLICKED(IDC_RESEL_CENTER_BUTN, OnReselCenterButn)
	ON_CBN_SELCHANGE(IDC_CENTER_NAME, OnSelchangeCenterName)
	//}}AFX_MSG_MAP
	ON_MESSAGE(MYMSG_GSMSMS_SENDMSG ,OnSndtoPhoneMsgProcess)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSmsComDlg message handlers

BOOL CSmsComDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	CDC* pDC=GetDC();
	int nBits=pDC->GetDeviceCaps(BITSPIXEL);
	ReleaseDC(pDC);
	if(nBits>0&&nBits<=8){
//		AfxMessageBox("  疑蔚      覃  善256伎    ");
		m_b256=TRUE;
	}
	else
		m_b256=FALSE;

	HWND hWnd;
    GetDlgItem(IDC_SNDSM_LIST,&hWnd);
	ASSERT(hWnd);
	DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE); 
	dwStyle &= ~(LVS_TYPEMASK);
	dwStyle &= ~(LVS_EDITLABELS);
 
	// Make sure we have report view and send edit label messages.
    SetWindowLong( hWnd, GWL_STYLE, dwStyle | LVS_REPORT );

	// Enable the full row selection and the drag drop of headers.
	DWORD styles = LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES;
	// Use macro since this is new and not in MFC.
	ListView_SetExtendedListViewStyleEx(hWnd, styles, styles );

/****
    GetDlgItem(IDC_RCVSM_LIST,&hWnd);
	ASSERT(hWnd);
    dwStyle = GetWindowLong(hWnd, GWL_STYLE); 
	dwStyle &= ~(LVS_TYPEMASK);
	dwStyle &= ~(LVS_EDITLABELS);
 
	// Make sure we have report view and send edit label messages.
    SetWindowLong( hWnd, GWL_STYLE, dwStyle | LVS_REPORT );

	// Enable the full row selection and the drag drop of headers.
	styles = LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES;
	// Use macro since this is new and not in MFC.
	ListView_SetExtendedListViewStyleEx(hWnd, styles, styles );
****/

	LV_COLUMN		lvcolumn;
	CRect rect;
	CString szheader;
	m_ctrlSndSMList.GetWindowRect( &rect );
	// Insert columns using the order field
	lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER;
	lvcolumn.fmt = LVCFMT_LEFT;
	szheader.LoadString(IDS_LISTHEADER_NO);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
	//lvcolumn.pszText = _T("序号");
	lvcolumn.iSubItem = 0;
	lvcolumn.iOrder = 0;
	lvcolumn.cx = (rect.Width() /18);  
	m_ctrlSndSMList.InsertColumn(0, &lvcolumn);  

	szheader.LoadString(IDS_LISTHEADER_SNDMTCODE);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
    //lvcolumn.pszText = _T("发方手机号");
	lvcolumn.cx = (rect.Width() /8); 
//	m_ctrlRcvSMList.InsertColumn(0, &lvcolumn);

	lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER;
	lvcolumn.fmt = LVCFMT_LEFT;
	szheader.LoadString(IDS_LISTHEADER_SNDTIME);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
	//lvcolumn.pszText =  _T("发送时间");
	lvcolumn.iSubItem = 1;
	lvcolumn.iOrder = 1;
	lvcolumn.cx =rect.Width()/5;
	m_ctrlSndSMList.InsertColumn(1, &lvcolumn); 
	szheader.LoadString(IDS_LISTHEADER_SMTEXT);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
	//lvcolumn.pszText = _T("消息内容");
	lvcolumn.cx =rect.Width()*4; 
//	m_ctrlRcvSMList.InsertColumn(1, &lvcolumn);

	lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER;
	lvcolumn.fmt = LVCFMT_LEFT;
	szheader.LoadString(IDS_LISTHEADER_RCVMTCODE);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
	//lvcolumn.pszText =  _T("收方手机号");
	lvcolumn.iSubItem = 2;
	lvcolumn.iOrder = 2;
	lvcolumn.cx =rect.Width()/7;
	m_ctrlSndSMList.InsertColumn(2, &lvcolumn); 

	lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER;
	lvcolumn.fmt = LVCFMT_LEFT;
	szheader.LoadString(IDS_LISTHEADER_SMTEXT);
	lvcolumn.pszText =(LPSTR)((LPCSTR)szheader);
	//lvcolumn.pszText =  _T("消息内容");
	lvcolumn.iSubItem = 3;
	lvcolumn.iOrder = 3;
	lvcolumn.cx =rect.Width()*2;
	m_ctrlSndSMList.InsertColumn(3, &lvcolumn); 

	m_ctrlComSel.AddString(_T("Com1"));
	m_ctrlComSel.AddString(_T("Com2"));
	m_ctrlComSel.SetCurSel(0);
	m_nCurComSel=1;//Com1

	CString szBaud;
	for(int i=0;i<7;i++)
	{
		szBaud.Empty();
		szBaud.Format("%d",m_nBaudList[i]);
        m_ctrlBaudSel.AddString(szBaud);
	}
    m_ctrlBaudSel.SetCurSel(4);
    m_nCurBaud=m_nBaudList[4];
    CReadDB db;
	POSITION pos;
	int nCnt=0;

    CStringList szMoniUnitNameList;
	if(db.GetMoniUnitName(&szMoniUnitNameList)==TRUE)
	{
		pos=szMoniUnitNameList.GetHeadPosition();
     	for(int i=0;i<szMoniUnitNameList.GetCount();i++)
		{
	    	m_ctrlCenterName.AddString(szMoniUnitNameList.GetAt(pos));
	    	szMoniUnitNameList.GetNext(pos);
		}
	}
	else
	{
		DispMsg(_T("读取监测中心名[监测中心表=>无数据]!"));
	}

	if(m_ctrlCenterName.GetCount()>0) 
	{
		CString szMoniUnitName=_T("");
		szMoniUnitName=AfxGetApp()->GetProfileString(s_profileHeading,s_profileMoniUnitName);
		szMoniUnitName.TrimLeft();
		szMoniUnitName.TrimRight();
		if(szMoniUnitName.IsEmpty())
		{
		   m_ctrlCenterName.SetCurSel(0);
		}
		else
		{
			int nret=m_ctrlCenterName.FindString(0,szMoniUnitName);
            if(nret==CB_ERR)
				m_ctrlCenterName.SetCurSel(0);
			else
				m_ctrlCenterName.SetCurSel(nret);
		}
		m_ctrlCenterName.GetWindowText(szMoniUnitName);
		szMoniUnitName.TrimLeft();
		szMoniUnitName.TrimRight();
		AfxGetApp()->WriteProfileString(s_profileHeading,s_profileMoniUnitName,szMoniUnitName);

		CString szMoniUnitID;
		if(db.GetMoniUnitIDByMoniUnitName(szMoniUnitName,szMoniUnitID)==TRUE)
		{
			if(!szMoniUnitID.IsEmpty())
			{
				CString szSMCIAC,szSMCCode,szMTIAC,szMTCode;
				if(db.GetSmsSettingMsg(szMoniUnitID,szSMCIAC,szSMCCode,szMTIAC,szMTCode)==TRUE)
				{
					m_ctrlGsmSms.SetSMCInterAreaCode(szSMCIAC);
					m_ctrlGsmSms.SetSMSCCode(szSMCCode);
					m_ctrlGsmSms.SetMTInterAreaCode(szMTIAC);
					m_ctrlGsmSms.SetCalledPhoneCode(szMTCode);
				}
				else
				{
					CString idgetstr,szcap;
					idgetstr.LoadString(IDS_READDB_ERROR);
					szcap.LoadString(IDS_READDB_CAPTION_SMSETTING);
					//MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
					DispMsg(_T("[")+szMoniUnitName+_T("]")+szcap+idgetstr);
				}

				if(m_ctrlGsmSms.ReadMTCodeFromDBSet(szMoniUnitID,nCnt)==FALSE)
				{
				    CString idgetstr,szcap;
					idgetstr.LoadString(IDS_READDB_ERROR);
					szcap.LoadString(IDS_READDB_CAPTION_SMMTLIST);
					//MessageBox(idgetstr,szcap,MB_OK | MB_ICONWARNING);
					DispMsg(_T("[")+szMoniUnitName+_T("]")+szcap+_T("=>")+idgetstr);
				}
			}
		}
	}
/****
    CString szSMCIAC,szSMCCode,szMTIAC,szMTCode;
	if(db.GetSmsSettingMsg(szSMCIAC,szSMCCode,szMTIAC,szMTCode)==TRUE)
	{
		m_ctrlGsmSms.SetSMCInterAreaCode(szSMCIAC);
		m_ctrlGsmSms.SetSMSCCode(szSMCCode);
		m_ctrlGsmSms.SetMTInterAreaCode(szMTIAC);
		m_ctrlGsmSms.SetCalledPhoneCode(szMTCode);
	}
	else

⌨️ 快捷键说明

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