参考:https://blog.youkuaiyun.com/qq_20515461/article/details/78760257
实现代码:
1、在窗口类内添加成员函数
BOOL PreTranslateMessage(MSG* pMsg);
void CMy02_TCPClientDlg::OnTimer(UINT nIDEvent);

2.在Dlg中下列列表中添加 ON_WM_TIMER()

3.程序编写:
BOOL CMy02_TCPClientDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_LBUTTONDOWN)//拦截鼠标左键按下消息
{
if (pMsg->hwnd == GetDlgItem(IDC_BUTTON51)->m_hWnd)//判断按下的位置是否为目标button,button名为IDC_BUTTON5
{
SetTimer(2, 50, NULL);//触发定时器,定时器ID为2 1000=1s
}
}
else if (pMsg->message == WM_LBUTTONUP)//鼠标左键抬起
{
KillTimer(2);//关闭ID为2的定时器
}
return CDialog::PreTranslateMessage(pMsg); //一定要有,其他消息系统默认处理
}
void CMy02_TCPClientDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 2: ///当ID为2的定时器时间到时,执行以下程序
{
CString aaaa;//定义字符串
aaaa = _T("1");//字符串赋值
USES_CONVERSION;
char * send1 = T2A(aaaa);//转换
m_connSocket.Send(send1, strlen(send1));//tcp发送
}
break;
}
CDialog::OnTimer(nIDEvent);
}
完整介绍:https://blog.youkuaiyun.com/JanKin_BY/article/details/105557302
之前是点击,发送,现在改为,按住前,STM32接收到1,车体前进,停止按动,收不到1,停止
本文详细介绍了一种在Windows应用程序中使用定时器结合鼠标事件,实现在按住特定按钮时,每隔固定时间通过TCP发送数据的方法。具体实现包括在窗口类中添加PreTranslateMessage和OnTimer成员函数,用于拦截鼠标左键按下和抬起的消息,以及设置和取消定时器。
7624

被折叠的 条评论
为什么被折叠?



