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

📄 dlgopcpc.cpp

📁 OPC Client 源代码
💻 CPP
字号:
// DlgOPCPC.cpp : implementation file
//

#include "stdafx.h"
#include "TYOPCClient.h"
#include "DlgOPCPC.h"

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

extern BOOL GetLanInfo(CMapStringToString & cMapPCIP) ;

/////////////////////////////////////////////////////////////////////////////
// CDlgOPCPC dialog


CDlgOPCPC::CDlgOPCPC(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgOPCPC::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgOPCPC)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDlgOPCPC::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgOPCPC)
	DDX_Control(pDX, IDC_COMBO_NAME, m_ctrlPCName);
	DDX_Control(pDX, IDC_IPADDRESS, m_ctrIPAddr);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgOPCPC, CDialog)
	//{{AFX_MSG_MAP(CDlgOPCPC)
	ON_CBN_SELCHANGE(IDC_COMBO_NAME, OnSelchangeComboName)
	ON_BN_CLICKED(ID_LAN_PC, OnLanPC)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgOPCPC message handlers

void CDlgOPCPC::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	BYTE nField[4];
	m_ctrIPAddr.GetAddress(nField[0],nField[1],nField[2],nField[3]);
	if(0==nField[0]
		&&0==nField[1]
		&&0==nField[2]
		&&0==nField[3])
	{
		AfxMessageBox(_T("IP地址不能为空"));
		return;
	}
	
	m_ctrlPCName.GetWindowText (m_strPCName);
	if(m_strPCName.IsEmpty())
	{
		AfxMessageBox(_T("计算机名称不能为空"));
		return;
	}


	m_strIPAddr.Format (_T("%d.%d.%d.%d"),nField[0],nField[1],nField[2],nField[3]);

	CDialog::OnOK();
}

void CDlgOPCPC::OnSelchangeComboName() 
{
	// TODO: Add your control notification handler code here
	m_ctrlPCName.GetLBText (m_ctrlPCName.GetCurSel (), m_strPCName);

	m_strIPAddr.Empty ();
	if(m_cMapPCIP.Lookup (m_strPCName,m_strIPAddr))
	{
		m_ctrIPAddr.SetWindowText (m_strIPAddr);
		TRACE("%s %s\n",m_strPCName,m_strIPAddr);
	}

}

BOOL CDlgOPCPC::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	BeginWaitCursor();
	//浏览局域网中所有的计算机
/*
	char szHostName[128];
	if(gethostname(szHostName,128)==0)
	{
		//获得主机名
		//获取IP 地址
		struct hostent* pHost;
		int i;
		pHost=::gethostbyname(szHostName);
		for(i=0;pHost!=NULL && pHost->h_addr_list [i]!=NULL;i++)
		{
		}
	}
//*/
	EndWaitCursor();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgOPCPC::OnLanPC() 
{
	// TODO: Add your control notification handler code here
	m_cMapPCIP.RemoveAll ();

	if(GetLanInfo(m_cMapPCIP) )
	{
		POSITION pos=m_cMapPCIP.GetStartPosition ();
		CString strPCName,strPCIP;
		int n=0;
		while(pos)
		{
			m_cMapPCIP.GetNextAssoc (pos,strPCName,strPCIP);
			m_ctrlPCName.AddString (strPCName);
		}
		m_ctrlPCName.SetCurSel (0);
		OnSelchangeComboName();
	}
}

⌨️ 快捷键说明

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