?? groupdlg.cpp
字號:
// GroupDlg.cpp : implementation file
//
#include "stdafx.h"
#include "VCOPCClient.h"
#include "GroupDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CGroupDlg dialog
CGroupDlg::CGroupDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGroupDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CGroupDlg)
m_bActive = FALSE;
m_DeadBand = 0.0f;
m_GroupName = _T("");
m_UpdateRate = 0;
//}}AFX_DATA_INIT
m_pView = NULL;
}
void CGroupDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGroupDlg)
DDX_Control(pDX, IDC_LIST_CONNECTED_GROUP, m_listConnectedGroup);
DDX_Control(pDX, IDC_COMBO_SERVER, m_cmbServer);
DDX_Check(pDX, IDC_CHECK_ACTIVE, m_bActive);
DDX_Text(pDX, IDC_EDIT_DEADBAND, m_DeadBand);
DDV_MinMaxFloat(pDX, m_DeadBand, 0.f, 1.f);
DDX_Text(pDX, IDC_EDIT_GROUPNAME, m_GroupName);
DDX_Text(pDX, IDC_EDIT_UPDATERATE, m_UpdateRate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CGroupDlg, CDialog)
//{{AFX_MSG_MAP(CGroupDlg)
ON_BN_CLICKED(IDC_BUTTON_ADDGROUP, OnButtonAddgroup)
ON_BN_CLICKED(IDC_BUTTON_REMOVEGROUP, OnButtonRemovegroup)
ON_LBN_SELCHANGE(IDC_LIST_CONNECTED_GROUP, OnSelchangeListConnectedGroup)
ON_CBN_SELCHANGE(IDC_COMBO_SERVER, OnSelchangeComboServer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGroupDlg message handlers
void CGroupDlg::PopulateGroupList(CString& strServer)
{
if ( strServer.IsEmpty() )
return;
CConnection* pConn = m_pView->GetConnection(strServer);
if ( NULL != pConn )
{
m_listConnectedGroup.ResetContent();
for( vector<CGroup*>::iterator iter = pConn->m_Groups.begin();
iter != pConn->m_Groups.end();
++iter)
{
m_listConnectedGroup.AddString((*iter)->m_Name);
}
}
}
BOOL CGroupDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_bActive = TRUE;
m_DeadBand = 0.0f;
m_GroupName = "Group1";
m_UpdateRate = 1000;
UpdateData(FALSE);
for( vector<CConnection*>::iterator iter = m_pView->m_Connections.begin();
iter != m_pView->m_Connections.end();
++iter)
{
m_cmbServer.AddString((*iter)->m_ServerName);
}
m_cmbServer.SetCurSel(0);
CString strServer;
m_cmbServer.GetLBText(0, strServer);
PopulateGroupList(strServer);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CGroupDlg::OnButtonAddgroup()
{
UpdateData();
int nIndex = m_cmbServer.GetCurSel();
CString strServer;
m_cmbServer.GetLBText(nIndex, strServer);
CConnection* pConn = m_pView->GetConnection(strServer);
HANDLE hGroup = AddGroup( pConn->m_hServer, m_GroupName, m_bActive, m_UpdateRate,
NULL, &m_DeadBand, 0 );
if (hGroup != INVALID_HANDLE_VALUE)
{
CGroup* pGroup = new CGroup();
pGroup->m_Handle = hGroup;
pGroup->m_Name = m_GroupName;
pConn->m_Groups.push_back(pGroup);
}
PopulateGroupList(strServer);
}
void CGroupDlg::OnButtonRemovegroup()
{
UpdateData();
int nIndex = m_cmbServer.GetCurSel();
CString strServer;
m_cmbServer.GetLBText(nIndex, strServer);
CConnection* pConn = m_pView->GetConnection(strServer);
nIndex = m_listConnectedGroup.GetCurSel();
if (nIndex >= 0)
{
CString strGroup;
m_listConnectedGroup.GetText(nIndex, strGroup);
CGroup* pGroup = pConn->GetGroup(strGroup);
if ( NULL != pGroup )
{
RemoveGroup(pConn->m_hServer, pGroup->m_Handle);
pConn->EraseGroup(strGroup);
delete pGroup;
PopulateGroupList(strServer);
}
}
}
void CGroupDlg::OnSelchangeListConnectedGroup()
{
int nIndex = m_cmbServer.GetCurSel();
CString strServer;
m_cmbServer.GetLBText(nIndex, strServer);
CConnection* pConn = m_pView->GetConnection(strServer);
nIndex = m_listConnectedGroup.GetCurSel();
if (nIndex >= 0)
{
CString strGroup;
m_listConnectedGroup.GetText(nIndex, strGroup);
CGroup* pGroup = pConn->GetGroup(strGroup);
if ( NULL != pGroup )
{
char name[255];
DWORD Rate;
BOOL bActive;
LONG TimeBias;
float DeadBand;
DWORD lcid;
if (GetGroupState(pConn->m_hServer, pGroup->m_Handle, name, 255, &Rate,
&bActive, &TimeBias, &DeadBand, &lcid))
{
m_UpdateRate = Rate;
m_bActive = bActive;
m_DeadBand = DeadBand;
UpdateData(FALSE);
}
}
}
}
void CGroupDlg::OnSelchangeComboServer()
{
int nIndex = m_cmbServer.GetCurSel();
CString strServer;
m_cmbServer.GetLBText(nIndex, strServer);
PopulateGroupList(strServer);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -