📄 ibhnetbspdlg.cpp
字号:
// IBHNetBspDlg.cpp : Implementierungsdatei
//
#include "stdafx.h"
#include "IBHNetBsp.h"
#include "IBHNetBspDlg.h"
#include "DlgProxy.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// IBHNet.dll Funktionen dem eigenen Projekt hinzuf黦en.
#include <atlbase.h>
#import "ibhnet.dll" no_namespace named_guids
// Anmerkung: Den durch die #import Direktive in der automatisch erzeugten Datei 'ibhnet.tlh'
// vorhandenen 'raw_' Funktionen ist der Vorzug gegen黚er den etwas bequemer zu verwendenden
// COM-Verkapselungen zu geben, da die raw_ Funktionen Fehler immer im HRESULT zur點kgeben
// anstatt eine Exception zu werfen, die mit try{}catch(...){} gefangen werden muss.
// Microsoft VC++ bietet in der importierten Deklaration beide Varianten an.
IIIBHnet * pIBH = NULL;
bool connected = false;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg-Dialogfeld f黵 Anwendungsbefehl "Info"
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialogfelddaten
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// Vom Klassenassistenten generierte 躡erladungen virtueller Funktionen
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterst黷zung
//}}AFX_VIRTUAL
// Implementierung
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// Keine Nachrichten-Handler
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIBHNetBspDlg Dialogfeld
IMPLEMENT_DYNAMIC(CIBHNetBspDlg, CDialog);
CIBHNetBspDlg::CIBHNetBspDlg(CWnd* pParent /*=NULL*/)
: CDialog(CIBHNetBspDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CIBHNetBspDlg)
m_Edit1 = 0;
m_Edit2 = 0;
m_MPI = 0;
//}}AFX_DATA_INIT
// Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf ben鰐igt
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_pAutoProxy = NULL;
}
CIBHNetBspDlg::~CIBHNetBspDlg()
{
// Existiert f黵 dieses Dialogfeld ein Automatisierungs-Proxy, setzen Sie
// seinen Gegenzeiger auf dieses Dialogfeld auf NULL, um anzuzeigen,
// dass das Dialogfeld gel鰏cht wurde.
if (m_pAutoProxy != NULL)
m_pAutoProxy->m_pDialog = NULL;
}
void CIBHNetBspDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIBHNetBspDlg)
DDX_Control(pDX, IDC_LIST_VALUES, m_VarList);
DDX_Control(pDX, IDC_COMBO_CPU, m_Combo);
DDX_Text(pDX, IDC_EDIT1, m_Edit1);
DDX_Text(pDX, IDC_EDIT2, m_Edit2);
DDX_Text(pDX, IDC_EDIT_MPI, m_MPI);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIBHNetBspDlg, CDialog)
//{{AFX_MSG_MAP(CIBHNetBspDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON_CONNECT, OnButtonConnect)
ON_BN_CLICKED(IDC_BUTTON_Disconnect, OnBUTTONDisconnect)
ON_BN_CLICKED(IDC_BUTTON_R_MW10, OnButtonRMw10)
ON_BN_CLICKED(IDC_BUTTON_W_MW10, OnButtonWMw10)
ON_BN_CLICKED(IDC_BUTTON_R_MD20, OnButtonRMd20)
ON_BN_CLICKED(IDC_BUTTON_W_MD20, OnButtonWMd20)
ON_CBN_DROPDOWN(IDC_COMBO_CPU, OnDropdownComboCpu)
ON_WM_SHOWWINDOW()
ON_WM_DESTROY()
ON_BN_CLICKED(IDC_BUTTON_READOPSTATE, OnButtonReadopstate)
ON_BN_CLICKED(IDC_BUTTON_SETPLCSTART, OnButtonSetplcstart)
ON_BN_CLICKED(IDC_BUTTON_SETPLCSTOP, OnButtonSetplcstop)
ON_BN_CLICKED(IDC_BUTTON_READBLOCK, OnButtonReadblock)
ON_BN_CLICKED(IDC_BUTTON_WRITEBLOCK, OnButtonWriteblock)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIBHNetBspDlg Nachrichten-Handler
BOOL CIBHNetBspDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Hinzuf黦en des Men黚efehls "Info..." zum Systemmen
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -