如图所示,我做了一个modbus client,在数据召唤,即点击按钮“Request” 时,就会从server中获取数据,现在我想请教一下大家,怎么让这个“Request”按钮在我点击一次之后,每隔一秒自动点击一次,
我在网上看了 定时器这个例子,但是还是不能实现,小弟C++新手,请大家帮忙......
17 个解决方案
#1
#2
大家快来帮帮忙吧~~~~~~~~~~~~~~~~~~
#4
谢谢赵老师,我先去看看这个东西
#5
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
#6
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );
CWnd类的函数
一般可以第一个设置计时器的id 第二个设置时间间隔 第三个一般填NULL
调用以后会自动执行OnTimer中的内容
这里完全可以把最后一个参数设为NULL
然后ctrl+W添加WM_TIMER消息
在这个函数中做事(..?不要乱想)就可以了
SetTimer(1, 1000, NULL); //这里的1和底下的nIDEvent的值对应,因为同时
//可以开数个Timer
//1000的意思就是每隔1秒调用一次
SetTimer(2, 10000, NULL);
void CPop::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1)
{
AfxMessageBox("Timer 1 runs!WELL DONE");
}
if(nIDEvent == 2)
{
AfxMessageBox("Timer 2 runs!WELL DONE");
}
CDialog::OnTimer(nIDEvent);
}
CWnd类的函数
一般可以第一个设置计时器的id 第二个设置时间间隔 第三个一般填NULL
调用以后会自动执行OnTimer中的内容
这里完全可以把最后一个参数设为NULL
然后ctrl+W添加WM_TIMER消息
在这个函数中做事(..?不要乱想)就可以了
SetTimer(1, 1000, NULL); //这里的1和底下的nIDEvent的值对应,因为同时
//可以开数个Timer
//1000的意思就是每隔1秒调用一次
SetTimer(2, 10000, NULL);
void CPop::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1)
{
AfxMessageBox("Timer 1 runs!WELL DONE");
}
if(nIDEvent == 2)
{
AfxMessageBox("Timer 2 runs!WELL DONE");
}
CDialog::OnTimer(nIDEvent);
}
#7
这位朋友你好,这样设置的定时器可以每秒弹出AfxMessageBox,但是我是想每秒点击BUTTON,有没有一个可以点击BUTTON的函数?
#8
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
#9
直接调用 那个按钮的响应函数啊
#10
直接调用 那个按钮的响应函数啊
可以告诉我怎么调用吗?小弟新手,求指导
#11
在资源对话框中,双击“Request”按钮 就跳到了这个按钮的调用函数
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
#12
在资源对话框中,双击“Request”按钮 就跳到了这个按钮的调用函数
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
谢谢 这位朋友,功能实现了!
#13
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
值得学习,谢谢赵老师
#14
点击BUTTON只是用户界面获取用户响应的一种方式,你只需调用按下按钮后执行的消息响应函数,就跟点按钮是一样的效果了。通过定时器SetTimer,然后在OnTimer里调用按钮消息响应函数就行了
#15
OnTimer()里调用你那个OnButtonDown()的消息。
#16
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
AutoHotKey只能实现键盘或者鼠标的一些操作吧
#17
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
AutoHotKey只能实现键盘或者鼠标的一些操作吧
AutoHotKey可以实现的功能多得无法穷举。
#1
#2
大家快来帮帮忙吧~~~~~~~~~~~~~~~~~~
#3
#4
谢谢赵老师,我先去看看这个东西
#5
#6
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );
CWnd类的函数
一般可以第一个设置计时器的id 第二个设置时间间隔 第三个一般填NULL
调用以后会自动执行OnTimer中的内容
这里完全可以把最后一个参数设为NULL
然后ctrl+W添加WM_TIMER消息
在这个函数中做事(..?不要乱想)就可以了
SetTimer(1, 1000, NULL); //这里的1和底下的nIDEvent的值对应,因为同时
//可以开数个Timer
//1000的意思就是每隔1秒调用一次
SetTimer(2, 10000, NULL);
void CPop::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1)
{
AfxMessageBox("Timer 1 runs!WELL DONE");
}
if(nIDEvent == 2)
{
AfxMessageBox("Timer 2 runs!WELL DONE");
}
CDialog::OnTimer(nIDEvent);
}
CWnd类的函数
一般可以第一个设置计时器的id 第二个设置时间间隔 第三个一般填NULL
调用以后会自动执行OnTimer中的内容
这里完全可以把最后一个参数设为NULL
然后ctrl+W添加WM_TIMER消息
在这个函数中做事(..?不要乱想)就可以了
SetTimer(1, 1000, NULL); //这里的1和底下的nIDEvent的值对应,因为同时
//可以开数个Timer
//1000的意思就是每隔1秒调用一次
SetTimer(2, 10000, NULL);
void CPop::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1)
{
AfxMessageBox("Timer 1 runs!WELL DONE");
}
if(nIDEvent == 2)
{
AfxMessageBox("Timer 2 runs!WELL DONE");
}
CDialog::OnTimer(nIDEvent);
}
#7
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );
CWnd类的函数
一般可以第一个设置计时器的id 第二个设置时间间隔 第三个一般填NULL
调用以后会自动执行OnTimer中的内容
这里完全可以把最后一个参数设为NULL
然后ctrl+W添加WM_TIMER消息
在这个函数中做事(..?不要乱想)就可以了
SetTimer(1, 1000, NULL); //这里的1和底下的nIDEvent的值对应,因为同时
//可以开数个Timer
//1000的意思就是每隔1秒调用一次
SetTimer(2, 10000, NULL);
void CPop::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 1)
{
AfxMessageBox("Timer 1 runs!WELL DONE");
}
if(nIDEvent == 2)
{
AfxMessageBox("Timer 2 runs!WELL DONE");
}
CDialog::OnTimer(nIDEvent);
}
这位朋友你好,这样设置的定时器可以每秒弹出AfxMessageBox,但是我是想每秒点击BUTTON,有没有一个可以点击BUTTON的函数?
#8
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
#9
直接调用 那个按钮的响应函数啊
#10
直接调用 那个按钮的响应函数啊
可以告诉我怎么调用吗?小弟新手,求指导
#11
在资源对话框中,双击“Request”按钮 就跳到了这个按钮的调用函数
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
#12
在资源对话框中,双击“Request”按钮 就跳到了这个按钮的调用函数
然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");
谢谢 这位朋友,功能实现了!
#13
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
值得学习,谢谢赵老师
#14
点击BUTTON只是用户界面获取用户响应的一种方式,你只需调用按下按钮后执行的消息响应函数,就跟点按钮是一样的效果了。通过定时器SetTimer,然后在OnTimer里调用按钮消息响应函数就行了
#15
OnTimer()里调用你那个OnButtonDown()的消息。
#16
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
AutoHotKey只能实现键盘或者鼠标的一些操作吧
#17
http://www.autohotkey.com
赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢
该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。
AutoHotKey只能实现键盘或者鼠标的一些操作吧
AutoHotKey可以实现的功能多得无法穷举。