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

📄 dlgtel.cpp

📁 一个可以实现与SCADA系统实现数据访问,并且通过手机短消息的方式发送到指定手机用户的实现.
💻 CPP
字号:
// DlgTel.cpp : implementation file
//

#include "stdafx.h"
#include "GsmSms.h"
#include "DlgTel.h"
#include "DlgAddTel.h"
#include "DlgModify.h"

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

extern _PERSON_INFO_  m_person_info[FJD_PERSON_MAX];
extern int m_person_max;


/////////////////////////////////////////////////////////////////////////////
// CDlgTel dialog
CDlgTel::CDlgTel(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgTel::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgTel)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	InitFile = _T("");
}

void CDlgTel::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgTel)
	DDX_Control(pDX, IDC_LIST_TEL, m_list_tel);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDlgTel, CDialog)
	//{{AFX_MSG_MAP(CDlgTel)
	ON_BN_CLICKED(IDC_TEL_ADD, OnTelAdd)
	ON_BN_CLICKED(IDC_B_MODIFY, OnBModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgTel message handlers


void CDlgTel::OnCancel() 
{
	CDialog::OnCancel();
}

void CDlgTel::OnTelAdd() 
{
	CDlgAddTel m_addtel;

	m_addtel.DoModal();
	LoadPersonMessage();
	AddList();
}

void CDlgTel::OnBModify() 
{
	int type;
    int count = m_list_tel.GetSelectionMark();
    if(count==-1){
		AfxMessageBox("没有选择!");
		return;
	}
	
	CDlgModify m_modfiy;
    m_modfiy.m_tel_name = m_person_info[count].name;
    m_modfiy.m_tel_num  = m_person_info[count].number;
    m_modfiy.m_rtu_sel  = m_person_info[count].rtu;
	m_modfiy.m_person_sel = count;
	type = m_person_info[count].type;
    
	if(type&SEND_TYPE_BHWJ) m_modfiy.m_check_act = TRUE;
	if(type&SEND_TYPE_ALL)  m_modfiy.m_check_all = TRUE;
	if(type&SEND_TYPE_DEV)  m_modfiy.m_check_dev = TRUE;
	if(type&SEND_TYPE_LMT)  m_modfiy.m_check_yc = TRUE;
	if(type&SEND_TYPE_YX)   m_modfiy.m_check_yx = TRUE;

	m_modfiy.DoModal();
	
	LoadPersonMessage();
	AddList();
}

void CDlgTel::LoadPersonMessage()
{
	int count = 0;
	char asc[32];
	char temp[32];

	while(TRUE){
		sprintf(asc,"person%d",count);
	    m_person_info[count].rtu = GetPrivateProfileInt("RTU",asc,-1,InitFile);
        if(m_person_info[count].rtu == -1)
	       break;

	    sprintf(asc,"type%d",count);
	    m_person_info[count].type = GetPrivateProfileInt("SENDTYPE",asc,-1,InitFile);
	    if(m_person_info[count].type == -1) 
	       break;

		sprintf(asc,"name%d",count);
        GetPrivateProfileString("TELNAME",asc,"not found",temp,32,InitFile);
        if(!strcmp(m_person_info[count].name,"not found"))
	       break;
        m_person_info[count].name = temp;

		sprintf(asc,"code%d",count);
        GetPrivateProfileString("TELCODE",asc,"not found",temp,32,InitFile);
        if(!strcmp(m_person_info[count].number,"not found"))
	       break;
        m_person_info[count].number = temp;
	    count++;
	}
	m_person_max = count;
	
}

BOOL CDlgTel::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    GetFjPath();
    m_list_tel.SetExtendedStyle (LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
	InitList();
	AddList();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgTel::InitList() 
{
	LV_COLUMN lvCol;

	lvCol.mask = LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
	lvCol.fmt = LVCFMT_LEFT;

	lvCol.cx = 60;
	lvCol.pszText="姓名";
	lvCol.cchTextMax=4;
	lvCol.iSubItem = 0;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 90;
	lvCol.pszText="号码";
	lvCol.cchTextMax=8;
	lvCol.iSubItem = 1;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 95;
	lvCol.pszText="厂站";
	lvCol.cchTextMax=8;
	lvCol.iSubItem = 2;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 40;
	lvCol.pszText="遥信";
	lvCol.cchTextMax=4;
	lvCol.iSubItem = 3;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 40;
	lvCol.pszText="越限";
	lvCol.cchTextMax=4;
	lvCol.iSubItem = 4;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 40;
	lvCol.pszText="设备";
	lvCol.cchTextMax=4;
	lvCol.iSubItem = 5;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);

	lvCol.cx = 40;
	lvCol.pszText="保护";
	lvCol.cchTextMax=4;
	lvCol.iSubItem = 6;
	m_list_tel.InsertColumn(lvCol.iSubItem, &lvCol);
}

void CDlgTel::AddList()
{
	m_list_tel.DeleteAllItems();

    CString s;
	LV_ITEM lvItem;

	lvItem.mask = LVIF_TEXT;

	for(int i=0;i<m_person_max;i++)
	{
		lvItem.iItem = i;
	    lvItem.iSubItem = 0;
		s = m_person_info[i].name;
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.InsertItem(&lvItem);
		s.UnlockBuffer();
	}

	for(i=0;i<m_person_max;i++)
	{
        lvItem.iItem = i;
        lvItem.iSubItem = 1;
		s = m_person_info[i].number;
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();

        lvItem.iSubItem = 2;
		FjLibGetRtuNameCs(m_person_info[i].rtu,s);
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();

        lvItem.iSubItem = 3;
		if((m_person_info[i].type&SEND_TYPE_YX)||(m_person_info[i].type&SEND_TYPE_ALL)){
			s = "是";
		}else{
			s = "否";
		}
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();
        
        lvItem.iSubItem = 4;
		if((m_person_info[i].type&SEND_TYPE_LMT)||(m_person_info[i].type&SEND_TYPE_ALL)){
			s = "是";
		}else{
			s = "否";
		}
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();

        lvItem.iSubItem = 5;
		if((m_person_info[i].type&SEND_TYPE_DEV)||(m_person_info[i].type&SEND_TYPE_ALL)){
			s = "是";
		}else{
			s = "否";
		}
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();

        lvItem.iSubItem = 6;
		if((m_person_info[i].type&SEND_TYPE_BHWJ)||(m_person_info[i].type&SEND_TYPE_ALL)){
			s = "是";
		}else{
			s = "否";
		}
		lvItem.pszText = s.LockBuffer();
		lvItem.cchTextMax = s.GetLength();
		m_list_tel.SetItem(&lvItem);
		s.UnlockBuffer();

		Invalidate(TRUE);
	}
}

void CDlgTel::GetFjPath()
{
	char SysPath[128];
	int	i;
	
    SysPath[0]=0;
    GetPrivateProfileString("SysPath","SysPath",SysPath,SysPath,sizeof(SysPath),"c:\\FJ95NT.ini");
	if (SysPath[0]==0) {
    	::GetModuleFileName(AfxGetInstanceHandle(),SysPath,sizeof(SysPath));
    	i=lstrlen(SysPath);
    	while(TRUE) {  if (SysPath[i]==92  || i==0 ) break; i--; }
    	if (i) i--;
    	while(TRUE) {  if (SysPath[i]==92  || i==0 ) break; i--; }
        SysPath[i]=0;
	}

	InitFile = SysPath;
	InitFile += "\\init\\GsmSms.ini";
}   

⌨️ 快捷键说明

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