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

📄 opcserverdlg.cpp

📁 用visual c++编写的OPC程序。
💻 CPP
字号:
//**************************************************************************
//  Description:  Dialog to select OPC server to connect.
//**************************************************************************
#include "stdafx.h"
#include "OPCServerDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// OPCServerDlg dialog


OPCServerDlg::OPCServerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(OPCServerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(OPCServerDlg)
	m_Server = _T("");
	//}}AFX_DATA_INIT
}


void OPCServerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(OPCServerDlg)
	DDX_LBString(pDX, IDC_SERVER_LIST, m_Server);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(OPCServerDlg, CDialog)
	//{{AFX_MSG_MAP(OPCServerDlg)
#ifdef REV_12
	ON_LBN_DBLCLK(IDC_SERVER_LIST, OnDblclkServerList)
#endif // REV_12
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// OPCServerDlg message handlers
const int MAX_KEYLEN = 256;

//**************************************************************************
BOOL OPCServerDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CListBox* list = (CListBox*)GetDlgItem( IDC_SERVER_LIST );
	
   HKEY hk = HKEY_CLASSES_ROOT;
   TCHAR key[MAX_KEYLEN];
   for( int index=0; RegEnumKey(hk, index, key, MAX_KEYLEN)==ERROR_SUCCESS; index++)
   {
      HKEY hProgID;
      TCHAR dummy[MAX_KEYLEN];
      if(RegOpenKey(hk, key, &hProgID )==ERROR_SUCCESS )
      {
         LONG size=MAX_KEYLEN;
         if(RegQueryValue(hProgID, _T("OPC"), dummy, &size)==ERROR_SUCCESS )
         {
            TCHAR desc[MAX_KEYLEN];
            size=MAX_KEYLEN;
            RegQueryValue(hk, key, desc, &size);
            list->AddString( key );
         }
         RegCloseKey( hProgID );
      }
   }
   if( list->GetCount() > 0 )
      list->SetCurSel(0);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

#ifdef REV_12
//**************************************************************************
// allow double-click selection on a server
void OPCServerDlg::OnDblclkServerList() 
{
   OnOK();
}
#endif // REV_12

⌨️ 快捷键说明

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