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

📄 settingcolor.cpp

📁 FIRA 3对3 机器人足球PC端控制程序。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//////////////// 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 + -