📄 settingcolor.cpp
字号:
//////////////// ROBOT SOCCER PROGRAM //////////////////
//////////////// By Kim Heung Soo //////////////////
//////////////// IC Lab. 98. 8. 2. //////////////////
// modified by Choi.W.H 2000.02.18
// SettingColor.cpp : implementation file
//
#include "stdafx.h"
#include "Vision.h"
#include "SettingColor.h"
#include <mmsystem.h>
#include <mil.h>
#include <milproto.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSettingColor dialog
CSettingColor::CSettingColor(CWnd* pParent /*=NULL*/)
: CDialog(CSettingColor::IDD, pParent)
{
//{{AFX_DATA_INIT(CSettingColor)
m_sBmax = _T(""); m_sBmin = _T("");
m_sGmax = _T("");
m_sGmin = _T("");
m_sRmax = _T("");
m_sRmin = _T("");
m_bBlackBackground = FALSE;
m_nSelectedColor = -1;
//}}AFX_DATA_INIT
}
void CSettingColor::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSettingColor)
DDX_Control(pDX, IDC_RMIN_SCROLLBAR, m_Rmin_Scrollbar);
DDX_Control(pDX, IDC_RMAX_SCROLLBAR, m_Rmax_Scrollbar);
DDX_Control(pDX, IDC_GMIN_SCROLLBAR, m_Gmin_Scrollbar);
DDX_Control(pDX, IDC_GMAX_SCROLLBAR, m_Gmax_Scrollbar);
DDX_Control(pDX, IDC_BMIN_SCROLLBAR, m_Bmin_Scrollbar);
DDX_Control(pDX, IDC_BMAX_SCROLLBAR, m_Bmax_Scrollbar);
DDX_Text(pDX, IDC_BMAX_STATIC, m_sBmax);
DDX_Text(pDX, IDC_BMIN_STATIC, m_sBmin);
DDX_Text(pDX, IDC_GMAX_STATIC, m_sGmax);
DDX_Text(pDX, IDC_GMIN_STATIC, m_sGmin);
DDX_Text(pDX, IDC_RMAX_STATIC, m_sRmax);
DDX_Text(pDX, IDC_RMIN_STATIC, m_sRmin);
DDX_Check(pDX, IDC_BLACK_BACKGROUND_CHECK, m_bBlackBackground);
DDX_Radio(pDX, IDC_BALL_COLOR, m_nSelectedColor);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSettingColor, CDialog)
//{{AFX_MSG_MAP(CSettingColor)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_BLACK_BACKGROUND_CHECK, OnBlackBackgroundCheck)
ON_BN_CLICKED(IDC_BALL_COLOR, OnBallColor)
ON_BN_CLICKED(IDC_TEAM_COLOR, OnTeamColor)
ON_BN_CLICKED(IDC_ID1_COLOR, OnId1Color)
ON_BN_CLICKED(IDC_ID2_COLOR, OnId2Color)
ON_BN_CLICKED(IDC_ID3_COLOR, OnId3Color)
ON_BN_CLICKED(IDC_OPPONENT_COLOR, OnOpponentColor)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSettingColor message handlers
BOOL CSettingColor::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_Rmin_Scrollbar.SetScrollRange(0,255);
m_Rmax_Scrollbar.SetScrollRange(0,255);
m_Gmin_Scrollbar.SetScrollRange(0,255);
m_Gmax_Scrollbar.SetScrollRange(0,255);
m_Bmin_Scrollbar.SetScrollRange(0,255);
m_Bmax_Scrollbar.SetScrollRange(0,255);
m_Rmin_Scrollbar.SetScrollPos(nRmin_init);
m_Rmax_Scrollbar.SetScrollPos(nRmax_init);
m_Gmin_Scrollbar.SetScrollPos(nGmin_init);
m_Gmax_Scrollbar.SetScrollPos(nGmax_init);
m_Bmin_Scrollbar.SetScrollPos(nBmin_init);
m_Bmax_Scrollbar.SetScrollPos(nBmax_init);
char sPos[25];
itoa(m_Rmin_Scrollbar.GetScrollPos(),sPos,10);
m_sRmin = sPos;
itoa(m_Rmax_Scrollbar.GetScrollPos(),sPos,10);
m_sRmax = sPos;
itoa(m_Gmin_Scrollbar.GetScrollPos(),sPos,10);
m_sGmin = sPos;
itoa(m_Gmax_Scrollbar.GetScrollPos(),sPos,10);
m_sGmax = sPos;
itoa(m_Bmin_Scrollbar.GetScrollPos(),sPos,10);
m_sBmin = sPos;
itoa(m_Bmax_Scrollbar.GetScrollPos(),sPos,10);
m_sBmax = sPos;
UpdateData(FALSE);
CreateOverlayImage();
MdigHalt(MilDigitizerId);
SetTimer(1, 1000, NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSettingColor::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
long nID, index;
int value;
nID = GetWindowLong(pScrollBar->m_hWnd, GWL_ID);
index = nID-IDC_RMIN_SCROLLBAR;
switch(index){
case 0:
value = atoi((const char *)m_sRmin);
break;
case 1:
value = atoi((const char *)m_sRmax);
break;
case 2:
value = atoi((const char *)m_sGmin);
break;
case 3:
value = atoi((const char *)m_sGmax);
break;
case 4:
value = atoi((const char *)m_sBmin);
break;
case 5:
value = atoi((const char *)m_sBmax);
break;
}
switch(nSBCode){
case SB_LINEDOWN:
value += 1;
break;
case SB_LINEUP:
value += -1;
break;
case SB_PAGEDOWN:
value += 5;
break;
case SB_PAGEUP:
value += -5;
break;
case SB_BOTTOM:
value = 0;
break;
case SB_TOP:
value = 255;
break;
case SB_THUMBTRACK:
case SB_THUMBPOSITION:
value = nPos;
break;
default:
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
return;
}
if(value > 255)
value = 255;
else if(value < 0)
value = 0;
pScrollBar->SetScrollPos(value);
SetDlgItemInt(nID, value, FALSE);
char tmp[25];
sprintf(tmp, "%d", value);
switch(index){
case 0:
m_sRmin = tmp;
break;
case 1:
m_sRmax = tmp;
break;
case 2:
m_sGmin = tmp;
break;
case 3:
m_sGmax = tmp;
break;
case 4:
m_sBmin = tmp;
break;
case 5:
m_sBmax = tmp;
break;
}
UpdateData(FALSE);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CSettingColor::OnBallColor()
{
// TODO: Add your control notification handler code here
char tmp[10];
CScrollBar *pScroll;
UpdateData(TRUE);
if(bSetColor == FALSE){
sprintf(tmp, "%u", ballcolor[0]);
m_sRmin = tmp;
sprintf(tmp, "%u", ballcolor[1]);
m_sRmax = tmp;
sprintf(tmp, "%u", ballcolor[2]);
m_sGmin = tmp;
sprintf(tmp, "%u", ballcolor[3]);
m_sGmax = tmp;
sprintf(tmp, "%u", ballcolor[4]);
m_sBmin = tmp;
sprintf(tmp, "%u", ballcolor[5]);
m_sBmax = tmp;
pScroll = (CScrollBar *)GetDlgItem(IDC_RMIN_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[0], TRUE);
SetDlgItemInt(IDC_RMIN_SCROLLBAR, ballcolor[0], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_RMAX_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[1], TRUE);
SetDlgItemInt(IDC_RMAX_SCROLLBAR, ballcolor[1], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_GMIN_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[2], TRUE);
SetDlgItemInt(IDC_GMIN_SCROLLBAR, ballcolor[2], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_GMAX_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[3], TRUE);
SetDlgItemInt(IDC_GMAX_SCROLLBAR, ballcolor[3], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_BMIN_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[4], TRUE);
SetDlgItemInt(IDC_BMIN_SCROLLBAR, ballcolor[4], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_BMAX_SCROLLBAR);
pScroll->SetScrollPos(ballcolor[5], TRUE);
SetDlgItemInt(IDC_BMAX_SCROLLBAR, ballcolor[5], FALSE);
}
UpdateData(FALSE);
}
void CSettingColor::OnTeamColor()
{
// TODO: Add your control notification handler code here
char tmp[10];
CScrollBar *pScroll;
UpdateData(TRUE);
if(bSetColor == FALSE){
sprintf(tmp, "%u", teamcolor[0]);
m_sRmin = tmp;
sprintf(tmp, "%u", teamcolor[1]);
m_sRmax = tmp;
sprintf(tmp, "%u", teamcolor[2]);
m_sGmin = tmp;
sprintf(tmp, "%u", teamcolor[3]);
m_sGmax = tmp;
sprintf(tmp, "%u", teamcolor[4]);
m_sBmin = tmp;
sprintf(tmp, "%u", teamcolor[5]);
m_sBmax = tmp;
pScroll = (CScrollBar *)GetDlgItem(IDC_RMIN_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[0], TRUE);
SetDlgItemInt(IDC_RMIN_SCROLLBAR, teamcolor[0], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_RMAX_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[1], TRUE);
SetDlgItemInt(IDC_RMAX_SCROLLBAR, teamcolor[1], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_GMIN_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[2], TRUE);
SetDlgItemInt(IDC_GMIN_SCROLLBAR, teamcolor[2], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_GMAX_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[3], TRUE);
SetDlgItemInt(IDC_GMAX_SCROLLBAR, teamcolor[3], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_BMIN_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[4], TRUE);
SetDlgItemInt(IDC_BMIN_SCROLLBAR, teamcolor[4], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_BMAX_SCROLLBAR);
pScroll->SetScrollPos(teamcolor[5], TRUE);
SetDlgItemInt(IDC_BMAX_SCROLLBAR, teamcolor[5], FALSE);
}
UpdateData(FALSE);
}
void CSettingColor::OnId1Color()
{
// TODO: Add your control notification handler code here
char tmp[10];
CScrollBar *pScroll;
UpdateData(TRUE);
if(bSetColor == FALSE){
sprintf(tmp, "%u", idcolor[0][0]);
m_sRmin = tmp;
sprintf(tmp, "%u", idcolor[0][1]);
m_sRmax = tmp;
sprintf(tmp, "%u", idcolor[0][2]);
m_sGmin = tmp;
sprintf(tmp, "%u", idcolor[0][3]);
m_sGmax = tmp;
sprintf(tmp, "%u", idcolor[0][4]);
m_sBmin = tmp;
sprintf(tmp, "%u", idcolor[0][5]);
m_sBmax = tmp;
pScroll = (CScrollBar *)GetDlgItem(IDC_RMIN_SCROLLBAR);
pScroll->SetScrollPos(idcolor[0][0], TRUE);
SetDlgItemInt(IDC_RMIN_SCROLLBAR, idcolor[0][0], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_RMAX_SCROLLBAR);
pScroll->SetScrollPos(idcolor[0][1], TRUE);
SetDlgItemInt(IDC_RMAX_SCROLLBAR, idcolor[0][1], FALSE);
pScroll = (CScrollBar *)GetDlgItem(IDC_GMIN_SCROLLBAR);
pScroll->SetScrollPos(idcolor[0][2], TRUE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -