MFC中怎么实现按钮自动点击

时间:2020-12-13 06:03:37
MFC中怎么实现按钮自动点击

如图所示,我做了一个modbus client,在数据召唤,即点击按钮“Request” 时,就会从server中获取数据,现在我想请教一下大家,怎么让这个“Request”按钮在我点击一次之后,每隔一秒自动点击一次,

我在网上看了  定时器这个例子,但是还是不能实现,小弟C++新手,请大家帮忙......

17 个解决方案

#1


MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击

#2


大家快来帮帮忙吧~~~~~~~~~~~~~~~~~~ MFC中怎么实现按钮自动点击

#4


谢谢赵老师,我先去看看这个东西

#5


引用 3 楼 zhao4zhong1 的回复:
http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在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);
}

#7


引用 6 楼 xihu1364 的回复:
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


引用 5 楼 Free1123 的回复:
Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。

#9


直接调用 那个按钮的响应函数啊

#10


引用 9 楼 xihu1364 的回复:
直接调用 那个按钮的响应函数啊


可以告诉我怎么调用吗?小弟新手,求指导 MFC中怎么实现按钮自动点击

#11


在资源对话框中,双击“Request”按钮   就跳到了这个按钮的调用函数

然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");  MFC中怎么实现按钮自动点击

#12


引用 11 楼 xihu1364 的回复:
在资源对话框中,双击“Request”按钮   就跳到了这个按钮的调用函数

然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");  MFC中怎么实现按钮自动点击


MFC中怎么实现按钮自动点击谢谢 这位朋友,功能实现了!

#13


引用 8 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


值得学习,谢谢赵老师

#14


点击BUTTON只是用户界面获取用户响应的一种方式,你只需调用按下按钮后执行的消息响应函数,就跟点按钮是一样的效果了。通过定时器SetTimer,然后在OnTimer里调用按钮消息响应函数就行了

#15


OnTimer()里调用你那个OnButtonDown()的消息。 MFC中怎么实现按钮自动点击

#16


引用 8 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


AutoHotKey只能实现键盘或者鼠标的一些操作吧

#17


引用 16 楼 u012736557 的回复:
Quote: 引用 8 楼 zhao4zhong1 的回复:

Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


AutoHotKey只能实现键盘或者鼠标的一些操作吧

AutoHotKey可以实现的功能多得无法穷举。

#1


MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击MFC中怎么实现按钮自动点击

#2


大家快来帮帮忙吧~~~~~~~~~~~~~~~~~~ MFC中怎么实现按钮自动点击

#3


#4


谢谢赵老师,我先去看看这个东西

#5


引用 3 楼 zhao4zhong1 的回复:
http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在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);
}

#7


引用 6 楼 xihu1364 的回复:
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


引用 5 楼 Free1123 的回复:
Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。

#9


直接调用 那个按钮的响应函数啊

#10


引用 9 楼 xihu1364 的回复:
直接调用 那个按钮的响应函数啊


可以告诉我怎么调用吗?小弟新手,求指导 MFC中怎么实现按钮自动点击

#11


在资源对话框中,双击“Request”按钮   就跳到了这个按钮的调用函数

然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");  MFC中怎么实现按钮自动点击

#12


引用 11 楼 xihu1364 的回复:
在资源对话框中,双击“Request”按钮   就跳到了这个按钮的调用函数

然后复制这个函数,替换AfxMessageBox("Timer 1 runs!WELL DONE");  MFC中怎么实现按钮自动点击


MFC中怎么实现按钮自动点击谢谢 这位朋友,功能实现了!

#13


引用 8 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


值得学习,谢谢赵老师

#14


点击BUTTON只是用户界面获取用户响应的一种方式,你只需调用按下按钮后执行的消息响应函数,就跟点按钮是一样的效果了。通过定时器SetTimer,然后在OnTimer里调用按钮消息响应函数就行了

#15


OnTimer()里调用你那个OnButtonDown()的消息。 MFC中怎么实现按钮自动点击

#16


引用 8 楼 zhao4zhong1 的回复:
Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


AutoHotKey只能实现键盘或者鼠标的一些操作吧

#17


引用 16 楼 u012736557 的回复:
Quote: 引用 8 楼 zhao4zhong1 的回复:

Quote: 引用 5 楼 Free1123 的回复:

Quote: 引用 3 楼 zhao4zhong1 的回复:

http://www.autohotkey.com


赵老师...感觉那又是一个新东西了,可以教我怎么在VS2010里面实现吗?谢谢

该新东西可以让你在任何语言中调用.ahk脚本自动完成几乎任何手动才能完成的功能。


AutoHotKey只能实现键盘或者鼠标的一些操作吧

AutoHotKey可以实现的功能多得无法穷举。