calcyliposition.cpp
来自「工程機器人自主作業控制程序」· C++ 代码 · 共 268 行
CPP
268 行
// CalCyliPosition.cpp : implementation file
//
#include "stdafx.h"
#include "ConRobot.h"
#include "CalCyliPosition.h"
#include "WBButton.h"
#include "channel.h"
#include "conio.h"
#include "stdio.h"
#include "ConRobotDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern unsigned short m_adbase,m_dabase;
/////////////////////////////////////////////////////////////////////////////
// CCalCyliPosition dialog
CCalCyliPosition::CCalCyliPosition(CWnd* pParent /*=NULL*/)
: CDialog(CCalCyliPosition::IDD, pParent)
{
//{{AFX_DATA_INIT(CCalCyliPosition)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CCalCyliPosition::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCalCyliPosition)
DDX_Control(pDX, IDOK, m_OK);
DDX_Control(pDX, IDC_RESET, m_Reset);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCalCyliPosition, CDialog)
//{{AFX_MSG_MAP(CCalCyliPosition)
ON_BN_CLICKED(IDC_RESET, OnReset)
ON_WM_VSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCalCyliPosition message handlers
BOOL CCalCyliPosition::OnInitDialog()
{
CDialog::OnInitDialog();
m_Reset.LoadBitmaps (IDB_BUTTON,5, 5, 5, 5, 4 );
m_OK.LoadBitmaps (IDB_BUTTON,5, 5, 5, 5, 4 );
CString strText1;
CScrollBar* pSB1 = (CScrollBar*) GetDlgItem(IDC_SCROLLBAR1);
pSB1->SetScrollRange(nMin, nMax);
pSB1->SetScrollPos(cy1);
strText1.Format("%3.2f", pSB1->GetScrollPos()/50.0-5);
SetDlgItemText(IDC_CYLINDER1, strText1);
CString strText2;
CScrollBar* pSB2 = (CScrollBar*) GetDlgItem(IDC_SCROLLBAR7);
pSB2->SetScrollRange(nMin, nMax);
pSB2->SetScrollPos(cy2);
strText2.Format("%3.2f", pSB2->GetScrollPos()/50.0-5);
SetDlgItemText(IDC_CYLINDER2, strText2);
CString strText3;
CScrollBar* pSB3 = (CScrollBar*) GetDlgItem(IDC_SCROLLBAR8);
pSB3->SetScrollRange(nMin, nMax);
pSB3->SetScrollPos(cy3);
strText3.Format("%3.2f", pSB3->GetScrollPos()/50.0-5);
SetDlgItemText(IDC_CYLINDER3, strText3);
CString strText4;
CScrollBar* pSB4 = (CScrollBar*) GetDlgItem(IDC_SCROLLBAR9);
pSB4->SetScrollRange(nMin, nMax);
pSB4->SetScrollPos(cy4);
strText4.Format("%3.2f", pSB4->GetScrollPos()/50.0-5);
SetDlgItemText(IDC_CYLINDER4, strText4);
/// W_726_DA(CONTROLA,1800);
// W_726_DA(CONTROLB,2048);
// W_726_DA(CONTROLC,2020);
// W_726_DA(CONTROLD,2020);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCalCyliPosition::OnReset()
{
// TODO: Add your control notification handler code here
CScrollBar* pSlide;
CString strText=" 0.00";
cy1=cy2=cy3=cy4=250;
pSlide=(CScrollBar*) GetDlgItem(IDC_SCROLLBAR1);
pSlide->SetScrollPos(cy1);
SetDlgItemText(IDC_CYLINDER1, strText);
pSlide=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR7);
pSlide->SetScrollPos(cy2);
SetDlgItemText(IDC_CYLINDER2, strText);
pSlide=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR8);
pSlide->SetScrollPos(cy3);
SetDlgItemText(IDC_CYLINDER3, strText);
pSlide=(CScrollBar*)GetDlgItem(IDC_SCROLLBAR9);
pSlide->SetScrollPos(cy4);
SetDlgItemText(IDC_CYLINDER4, strText);
}
void CCalCyliPosition::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CString strText;
double voltage=0;
int outdata=0;
int nTemp1, nTemp2=1;
double m2=5.0;
// Two trackbars are sending
// HSCROLL messages (different processing)
nTemp1=pScrollBar->GetScrollPos();
switch(pScrollBar->GetDlgCtrlID())
{
case IDC_SCROLLBAR1:
switch(nSBCode)
{
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
nTemp1=nPos; //唐新星改
break;
case SB_LINELEFT: // left arrow button
if ((nTemp1 - nTemp2) > nMin) {
nTemp1 -= nTemp2;
}
else {
nTemp1 = nMin;
}
pScrollBar->SetScrollPos(nTemp1);
break;
case SB_LINERIGHT: // right arrow button
if ((nTemp1 + nTemp2) < nMax) {
nTemp1 += nTemp2;
}
else {
nTemp1 = nMax;
}
pScrollBar->SetScrollPos(nTemp1);
break;
}
voltage=pScrollBar->GetScrollPos()/50.0-5;
outdata=(int)((-voltage+m2)*4095/10.0);
// W_726_DA(CONTROLA,outdata);
strText.Format("%3.2f",voltage);
SetDlgItemText(IDC_CYLINDER1, strText);
break;
case IDC_SCROLLBAR7:
switch(nSBCode)
{
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
nTemp1=nPos; //唐新星改
break;
case SB_LINELEFT: // left arrow button
if ((nTemp1 - nTemp2) > nMin) {
nTemp1 -= nTemp2;
}
else {
nTemp1 = nMin;
}
pScrollBar->SetScrollPos(nTemp1);
break;
case SB_LINERIGHT: // right arrow button
if ((nTemp1 + nTemp2) < nMax) {
nTemp1 += nTemp2;
}
else {
nTemp1 = nMax;
}
pScrollBar->SetScrollPos(nTemp1);
break;
}
voltage=pScrollBar->GetScrollPos()/50.0-5;
outdata=(int)((voltage+m2)*4095/10.0);
// W_726_DA(CONTROLB,outdata);
strText.Format("%3.2f", voltage);
SetDlgItemText(IDC_CYLINDER2, strText);
break;
case IDC_SCROLLBAR8:
switch(nSBCode)
{
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
nTemp1=nPos; //唐新星改v
break;
case SB_LINELEFT: // left arrow button
if ((nTemp1 - nTemp2) > nMin) {
nTemp1 -= nTemp2;
}
else {
nTemp1 = nMin;
}
pScrollBar->SetScrollPos(nTemp1);
break;
case SB_LINERIGHT: // right arrow button
if ((nTemp1 + nTemp2) < nMax) {
nTemp1 += nTemp2;
}
else {
nTemp1 = nMax;
}
pScrollBar->SetScrollPos(nTemp1);
break;
}
voltage=pScrollBar->GetScrollPos()/50.0-5;
outdata=(int)((-voltage+m2)*4095/10.0);
// W_726_DA(CONTROLC,outdata);
strText.Format("%3.2f", voltage);
SetDlgItemText(IDC_CYLINDER3, strText);
break;
case IDC_SCROLLBAR9:
switch(nSBCode)
{
case SB_THUMBPOSITION:
pScrollBar->SetScrollPos(nPos);
nTemp1=nPos; //唐新星改
break;
case SB_LINELEFT: // left arrow button
if ((nTemp1 - nTemp2) > nMin) {
nTemp1 -= nTemp2;
}
else {
nTemp1 = nMin;
}
pScrollBar->SetScrollPos(nTemp1);
break;
case SB_LINERIGHT: // right arrow button
if ((nTemp1 + nTemp2) < nMax) {
nTemp1 += nTemp2;
}
else {
nTemp1 = nMax;
}
pScrollBar->SetScrollPos(nTemp1);
break;
}
voltage=pScrollBar->GetScrollPos()/50.0-5;
strText.Format("%3.2f",voltage);
outdata=(int)((voltage+m2)*4095/10.0);
// W_726_DA(CONTROLD,outdata);
SetDlgItemText(IDC_CYLINDER4, strText);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?