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

📄 readsms.cpp

📁 通过GSM模块接收和发送短信的代码。在eVC4.0下编译通过
💻 CPP
字号:
// ReadSMS.cpp : implementation file
//

#include "stdafx.h"
#include "portpe.h"
#include "ReadSMS.h"
extern CPortPeApp theApp;
#include "ComPort.h"
extern CComPort port;

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

/////////////////////////////////////////////////////////////////////////////
// CReadSMS dialog


CReadSMS::CReadSMS(CWnd* pParent /*=NULL*/)
	: CDialog(CReadSMS::IDD, pParent)
{
	//{{AFX_DATA_INIT(CReadSMS)
	m_mobler = _T("");
	m_sms = _T("");
	m_time = _T("");
	//}}AFX_DATA_INIT
}


void CReadSMS::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CReadSMS)
	DDX_Control(pDX, IDC_PICTURE, m_pic);
	DDX_Text(pDX, IDC_MOBLER, m_mobler);
	DDX_Text(pDX, IDC_CONTENT, m_sms);
	DDX_Text(pDX, IDC_MOBLER2, m_time);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CReadSMS, CDialog)
	//{{AFX_MSG_MAP(CReadSMS)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CReadSMS message handlers

BOOL CReadSMS::OnInitDialog() 
{
	CDialog::OnInitDialog();
	TCHAR temp[256]=TEXT("\0");

	HBITMAP	hBk	=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(MAIN21),IMAGE_BITMAP, 0, 0, 0);	
	
	if(hBk!=NULL)
	{
		m_pic.SetBitmap(hBk);
	}

	CStatic* pLabelOne;
	pLabelOne = (CStatic*) GetDlgItem (IDC_MOBLER);
	pLabelOne->SetWindowText (TEXT("\0"));
	//pLabelOne->SetWindowPos(NULL,0,0,150,20,SWP_NOMOVE|SWP_NOZORDER|SWP_NOOWNERZORDER);
	
	pLabelOne = (CStatic*) GetDlgItem (IDC_MOBLER2);
	pLabelOne->SetWindowText (TEXT("\0"));
	
	pLabelOne = (CStatic*) GetDlgItem (IDC_HINT);
	pLabelOne->SetWindowText (TEXT("没有短信"));

	m_iShowCount=0;
	// TODO: Add extra initialization here
	//开始读取和填充号码

	//没有短信
	if (theApp.AppSetup.MAXSMS <1 )
	{
		return TRUE;
	}

	pLabelOne = (CStatic*) GetDlgItem (IDC_HINT);
	//TCHAR temp[16]=TEXT("\0");
	swprintf(temp,TEXT("位置:1/%d\0"),theApp.AppSetup.MAXSMS);
	pLabelOne->SetWindowText (temp);

	
	CFile fCode;
	try
	{
	#ifdef _DEBUG
		fCode.Open (TEXT("\\sms1.gps"),CFile::modeRead |CFile::modeNoTruncate | CFile::modeCreate);
	#else
		fCode.Open (TEXT("\\Storage Card\\sms1.gps"),CFile::modeRead |CFile::modeNoTruncate | CFile::modeCreate);
	#endif
		//fCode.
		SMSStruct sms;
		fCode.Read(&sms,sizeof(SMSStruct));
		fCode.Close ();
		//第一条短信号码
		m_mobler =sms.Tel;

		//第一条短信时间
		m_time =sms.Time;

		//第一条短信内容
		m_sms =sms.Text;
		
		UpdateData (FALSE);
		
		//显示第一条短信
		m_iShowCount=1;
		
		return TRUE;  // return TRUE unless you set the focus to a control
					  // EXCEPTION: OCX Property Pages should return FALSE
	}
	catch(...)
	{
		MessageBox(TEXT("没有短信"),TEXT("系统提示信息"),MB_OK);
		return TRUE;
	}
	return TRUE;
}

void CReadSMS::OnDown ()
{
	// TODO: Add your control notification handler code here
	//下一条短信号码
	if (m_iShowCount >= theApp.AppSetup.MAXSMS)
		return;
	m_iShowCount+=1;

	CStatic* pLabelOne;
	TCHAR temp[256]=TEXT("\0");
	pLabelOne = (CStatic*) GetDlgItem (IDC_HINT);
	swprintf(temp,TEXT("位置:%d/%d\0"),m_iShowCount,theApp.AppSetup.MAXSMS );
	pLabelOne->SetWindowText (temp);

	CFile fCode;
#ifdef _DEBUG
	swprintf(temp,TEXT("\\sms%d.gps\0"),m_iShowCount);
#else
	swprintf(temp,TEXT("\\Storage Card\\sms%d.gps"),m_iShowCount);
#endif
	fCode.Open (temp,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite);
	SMSStruct sms;
	fCode.Read(&sms,sizeof(SMSStruct));
	fCode.Close ();
	//第一条短信号码
	m_mobler =sms.Tel;

	//第一条短信时间
	m_time =sms.Time;

	//第一条短信内容
	m_sms =sms.Text;
	
	UpdateData (FALSE);
}

void CReadSMS::OnUp() 
{
	// TODO: Add your control notification handler code here
	//下一条短信号码
	if (m_iShowCount < 2)
		return;

	m_iShowCount-=1;

	CStatic* pLabelOne;
	TCHAR temp[256]=TEXT("\0");
	pLabelOne = (CStatic*) GetDlgItem (IDC_HINT);
	swprintf(temp,TEXT("位置:%d/%d\0"),m_iShowCount,theApp.AppSetup.MAXSMS);
	pLabelOne->SetWindowText (temp);

	CFile fCode;
#ifdef _DEBUG
	swprintf(temp,TEXT("\\sms%d.gps\0"),m_iShowCount);
#else
	swprintf(temp,TEXT("\\Storage Card\\sms%d.gps"),m_iShowCount);
#endif
	fCode.Open (temp,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite);
	SMSStruct sms;
	fCode.Read(&sms,sizeof(SMSStruct));
	fCode.Close ();
	//第一条短信号码
	m_mobler =sms.Tel;

	//第一条短信时间
	m_time =sms.Time;

	//第一条短信内容
	m_sms =sms.Text;
	
	UpdateData (FALSE);
}

HBRUSH CReadSMS::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(nCtlColor== CTLCOLOR_EDIT)
	{
		pDC->SetTextColor(RGB(0, 0, 255));
		pDC->SetBkColor(RGB(250,241,241));
		HBRUSH h = ::CreateSolidBrush(RGB(250,241,241));
		return h;
	}
	else if (nCtlColor == CTLCOLOR_STATIC)
	{
		pDC->SetTextColor(RGB(0, 0, 255));
		pDC->SetBkColor(RGB(240,216,216));
		HBRUSH h = ::CreateSolidBrush(RGB(240,216,216));
		return h;
	}
	else
	   return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

BOOL CReadSMS::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(WM_KEYDOWN == pMsg->message)
	{
		switch((int) pMsg->wParam)
		{
			case 37://向左箭头
				OnUp ();
				return TRUE;
			case 39://向右箭头
				OnDown ();
				return TRUE;
			case 40://向下箭头
				break;
			case 38://向上箭头
				break;
			case 27://ESC键:退出
				CDialog::OnCancel ();
				break;
			default:
				return TRUE;
		}
	}
	if ( WM_KEYUP == pMsg->message || WM_CHAR == pMsg->message)
	{
		return TRUE;
	}
	return CDialog::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

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