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

📄 monicontroldlg.cpp

📁 云台及镜头控制系统 云台及镜头控制系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	if(m_CRect_N.PtInRect(myPoint))
	{
		m_Near.SetIcon(hIconN_P);
		SendCommand(20400);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_Near.SetIcon(hIconN_O);
				SendCommand(20401);
				Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【长】按钮
	if(m_CRect_LG.PtInRect(myPoint))
	{
		m_Long.SetIcon(hIconLG_P);
		SendCommand(20500);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_Long.SetIcon(hIconLG_O);
				SendCommand(20501);
				Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【短】按钮
	if(m_CRect_SH.PtInRect(myPoint))
	{
		m_Short.SetIcon(hIconSH_P);
		SendCommand(20600);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_Short.SetIcon(hIconSH_O);
				SendCommand(20601);
				Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【大】微调按钮
	if(m_CRect_BM.PtInRect(myPoint))
	{
		m_BigMicro.SetIcon(hIconB_P);
		SendCommand(20110);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_BigMicro.SetIcon(hIconB_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20111);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【小】微调按钮
	if(m_CRect_SM.PtInRect(myPoint))
	{
		m_SmallMicro.SetIcon(hIconS_P);
		SendCommand(20210);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_SmallMicro.SetIcon(hIconS_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20211);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【远】微调按钮
	if(m_CRect_FM.PtInRect(myPoint))
	{
		m_FarMicro.SetIcon(hIconF_P);
		SendCommand(20310);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_FarMicro.SetIcon(hIconF_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20311);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【近】微调按钮
	if(m_CRect_NM.PtInRect(myPoint))
	{
		m_NearMicro.SetIcon(hIconN_P);
		SendCommand(20410);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_NearMicro.SetIcon(hIconN_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20411);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【长】微调按钮
	if(m_CRect_LGM.PtInRect(myPoint))
	{
		m_LongMicro.SetIcon(hIconLG_P);
		SendCommand(20510);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_LongMicro.SetIcon(hIconLG_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20511);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【短】微调按钮
	if(m_CRect_SHM.PtInRect(myPoint))
	{
		m_ShortMicro.SetIcon(hIconSH_P);
		SendCommand(20610);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_ShortMicro.SetIcon(hIconSH_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(20611);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【开】雨刷按钮
	if(m_CRect_OB.PtInRect(myPoint))
	{
		m_OpenBrush.SetIcon(hIconO_P);
		SendCommand(30100);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_OpenBrush.SetIcon(hIconO_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(30101);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【关】雨刷按钮
	if(m_CRect_CB.PtInRect(myPoint))
	{
		m_CloseBrush.SetIcon(hIconC_P);
		SendCommand(30200);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_CloseBrush.SetIcon(hIconC_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(30201);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【开】射灯按钮
	if(m_CRect_OL.PtInRect(myPoint))
	{
		m_OpenLight.SetIcon(hIconO_P);
		SendCommand(30300);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_OpenLight.SetIcon(hIconO_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(30301);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}
	//按下【关】射灯按钮
	if(m_CRect_CL.PtInRect(myPoint))
	{
		m_CloseLight.SetIcon(hIconC_P);
		SendCommand(30400);
		MSG	myMsg;
		this->SetCapture();
		while(1)
		{
			if(GetMessage(&myMsg,NULL,WM_LBUTTONUP,WM_LBUTTONUP))
			{
				Sleep(20);
				m_CloseLight.SetIcon(hIconC_O);
				m_ActStatus.SetWindowText("无操作!");
				//SendCommand(30401);
				//Sleep(20);
				::ReleaseCapture();
				break;
			}
		}
	}

	CDialog::OnLButtonDown(nFlags, point);
}


void CMoniControlDlg::OnOpencom() 
{
	// TODO: Add your control notification handler code here
	CComboBox	*m_ComboCom=NULL;
	CComboBox	*m_ComboBaudRate=NULL;
	UpdateData(true);                           //更新控件的数据
	//计算串口通信参数
	CString strPara;                            //串口参数字符串
	myComm.SetCommPort(m_Com+1);                //指定串口号
	switch(m_BaudRate)
	{
	case 0:
		{
			strPara="9600";
			break;
		}
	case 1:
		{
			strPara="4800";
			break;
		}
	case 2:
		{
			strPara="2400";
			break;
		}
	case 3:
		{
			strPara="1200";
			break;
		}
	}
	strPara+=",N,8,1";

	myComm.SetSettings(strPara);             //通信参数设置
	myComm.SetInBufferSize(1024);            //指定接收缓冲区大小
	myComm.SetInBufferCount(0);              //清空接收缓冲区
	myComm.SetInputMode(1);                  //设置数据获取方式
	myComm.SetInputLen(0);                   //设置每次读取长度
	myComm.SetRThreshold(1);                 //设置接收OnComm事件门限值
	myComm.SetPortOpen(1);                   //打开串口
	m_OpenCom.EnableWindow(false);           //使打开串口按钮无效
	m_CloseCom.EnableWindow(true);           //使关闭串口按钮生效
	AfxMessageBox("串口打开成功!");	
	m_ComboCom=(CComboBox*)GetDlgItem(IDC_COMBO_COM);
	m_ComboCom->EnableWindow(false);        //使端口选择框无效
	m_ComboBaudRate=(CComboBox*)GetDlgItem(IDC_COMBO_BAUDRATE);
	m_ComboBaudRate->EnableWindow(false);   //使波特率选择框无效
}

void CMoniControlDlg::OnClosecom() 
{
	// TODO: Add your control notification handler code here
	CComboBox	*m_ComboCom=NULL;
	CComboBox	*m_ComboBaudRate=NULL;
	m_OpenCom.EnableWindow(true);           //使打开串口按钮生效
	m_CloseCom.EnableWindow(false);         //使关闭串口按钮无效
	myComm.SetPortOpen(0);
	AfxMessageBox("串口关闭成功!");
	m_ComboCom=(CComboBox*)GetDlgItem(IDC_COMBO_COM);
	m_ComboCom->EnableWindow(true);        //使端口选择框生效
	m_ComboBaudRate=(CComboBox*)GetDlgItem(IDC_COMBO_BAUDRATE);
	m_ComboBaudRate->EnableWindow(true);   //使波特率选择框生效
}

void CMoniControlDlg::OnCloseupComboAddress() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	SendCommand(40100);            //发送切换设备地址命令
	Sleep(20);
	
}

//************************************
//*******获取静态按钮的位置数据*******
//************************************
CRect	CMoniControlDlg::GetRect(CStatic *pStatic)
{
	RECT myRect;
	CRect myCRect;
	pStatic->GetWindowRect(&myRect);
	myCRect.top=myRect.top;
	myCRect.left=myRect.left;
	myCRect.right=myRect.right;
	myCRect.bottom=myRect.bottom;
	return myCRect;
}

void CMoniControlDlg::OnMove(int x, int y) 
{
	CDialog::OnMove(x, y);
	
	// TODO: Add your message handler code here
	bMoved=true;                //置位主窗口移动过标志
}

void CMoniControlDlg::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	POINT	myPoint;
	myPoint.x=point.x;
	myPoint.y=point.y;
	//转换客户区坐标值到屏幕区
	ClientToScreen(&myPoint);
	//若主对话框移动过,重新计算各按钮的位置
	if(bMoved)
	{
		bMoved=false;                        //复位移动标志
		m_CRect_U=GetRect(&m_Up);            //获取上按钮位置
		m_CRect_D=GetRect(&m_Down);
		m_CRect_L=GetRect(&m_Left);
		m_CRect_R=GetRect(&m_Right);
		m_CRect_UM=GetRect(&m_UpMicro);
		m_CRect_DM=GetRect(&m_DownMicro);
		m_CRect_LM=GetRect(&m_LeftMicro);
		m_CRect_RM=GetRect(&m_RightMicro);
		m_CRect_LU=GetRect(&m_LeftUp);
		m_CRect_LD=GetRect(&m_LeftDown);
		m_CRect_RU=GetRect(&m_RightUp);
		m_CRect_RD=GetRect(&m_RightDown);

		m_CRect_B=GetRect(&m_Big);
		m_CRect_BM=GetRect(&m_BigMicro);
		m_CRect_S=GetRect(&m_Small);
		m_CRect_SM=GetRect(&m_SmallMicro);
		m_CRect_F=GetRect(&m_Far);
		m_CRect_FM=GetRect(&m_FarMicro);
		m_CRect_N=GetRect(&m_Near);
		m_CRect_NM=GetRect(&m_NearMicro);
		m_CRect_LG=GetRect(&m_Long);
		m_CRect_LGM=GetRect(&m_LongMicro);
		m_CRect_SH=GetRect(&m_Short);
		m_CRect_SHM=GetRect(&m_ShortMicro);

		m_CRect_OB=GetRect(&m_OpenBrush);
		m_CRect_CB=GetRect(&m_CloseBrush);
		m_CRect_OL=GetRect(&m_OpenLight);
		m_CRect_CL=GetRect(&m_CloseLight);	
	}
	//鼠标进入【上】按钮或离开【上】按钮
	if(m_CRect_U.PtInRect(myPoint))
	{
		m_Up.SetIcon(hIconU_O);
	}
	else
	{
		m_Up.SetIcon(hIconU_N);
	}
	//【下】
	if(m_CRect_D.PtInRect(myPoint))
	{
		m_Down.SetIcon(hIconD_O);
	}
	else
	{
		m_Down.SetIcon(hIconD_N);
	}
	//【左】
	if(m_CRect_L.PtInRect(myPoint))
	{
		m_Left.SetIcon(hIconL_O);
	}
	else
	{
		m_Left.SetIcon(hIconL_N);
	}
	//【右】
	if(m_CRect_R.PtInRect(myPoint))
	{
		m_Right.SetIcon(hIconR_O);
	}
	else
	{
		m_Right.SetIcon(hIconR_N);
	}
	//【左上】
	if(m_CRect_LU.PtInRect(myPoint))
	{
		m_LeftUp.SetIcon(hIconLU_O);
	}
	else
	{
		m_LeftUp.SetIcon(hIconLU_N);
	}
	//【左下】
	if(m_CRect_LD.PtInRect(myPoint))
	{
		m_LeftDown.SetIcon(hIconLD_O);
	}
	else
	{
		m_LeftDown.SetIcon(hIconLD_N);
	}
	//【右上】
	if(m_CRect_RU.PtInRect(myPoint))
	{
		m_RightUp.SetIcon(hIconRU_O);
	}
	else
	{
		m_RightUp.SetIcon(hIconRU_N);
	}
	//【右下】
	if(m_CRect_RD.PtInRect(myPoint))
	{
		m_RightDown.SetIcon(hIconRD_O);
	}
	else
	{
		m_RightDown.SetIcon(hIconRD_N);
	}
	//【上】,微调
	if(m_CRect_UM.PtInRect(myPoint))
	{
		m_UpMicro.SetIcon(hIconU_O);
	}
	else
	{
		m_UpMicro.SetIcon(hIconU_N);
	}
	//【下】,微调
	if(m_CRect_DM.PtInRect(myPoint))
	{
		m_DownMicro.SetIcon(hIconD_O);
	}
	else
	{
		m_DownMicro.SetIcon(hIconD_N);
	}
	//【左】,微调
	if(m_CRect_LM.PtInRect(myPoint))
	{
		m_LeftMicro.SetIcon(hIconL_O);
	}
	else
	{
		m_LeftMicro.SetIcon(hIconL_N);
	}
	//【右】,微调
	if(m_CRect_RM.PtInRect(myPoint))
	{
		m_RightMicro.SetIcon(hIconR_O);
	}
	else
	{
		m_RightMicro.SetIcon(hIconR_N);
	}
	//【大】光圈
	if(m_CRect_B.PtInRect(myPoint))
	{
		m_Big.SetIcon(hIconB_O);
	}
	else
	{
		m_Big.SetIcon(hIconB_N);
	}
	//【小】光圈
	if(m_CRect_S.PtInRect(myPoint))
	{
		m_Small.SetIcon(hIconS_O);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -