📄 monicontroldlg.cpp
字号:
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 + -