自动按按钮
Press Button automatically?
本文关键字:按钮 更新时间:2023-10-16
i一次按下按钮。之后,我想自动按按钮。我尝试此代码。但不起作用。按钮变量名称还可以。
VOID CALLBACK timerCallback(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
{
CkTimerDlg *box = (CkTimerDlg *)AfxGetMainWnd();
CString test = _T("Button Not Clicked");
box->testBox1.AddString(test);
HWND hwdButton = ::GetDlgItem(box->ok, IDOK);
::PostMessage(box->ok , WM_COMMAND, MAKELONG(IDOK, BN_CLICKED), (LPARAM)
hwdButton);
}
void SomeFunc()
{
SetTimer(NULL, 1, 1000, timerCallback);
/*MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}*/
}
void CkTimerDlg::OnBnClickedOk()
{
CString button = _T("Button Clicked");
testBox1.AddString(button);
SomeFunc();
}
任何想法如何做?
忘记您的timerCallback
功能
您需要此:
在CkTimerDlg
的类定义中,添加此Méthod
void OnTimer(UINT nIDEvent);
将此方法添加到CkTimerDlg
类:
void CTESTDLGDlg::OnTimer(UINT nIDEvent)
{
OnBnClickedOk();
CDialog::OnTimer(nIDEvent);
}
在CkTimerDlg
的消息映射中:
BEGIN_MESSAGE_MAP(CTESTDLGDlg, CDialog)
//{{AFX_MSG_MAP(CTESTDLGDlg)
...
ON_WM_TIMER() // <-- add this
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
在CkTimerDlg::OnInitDialog
中添加:
SetTimer(1,2000, NULL); // will call OnTimer after 2000 milliseconds
您不需要在somefunc
中致电SetTimer
。
相关文章:
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- Qt自定义QPush按钮未显示在布局上
- SDL 操纵杆按钮按下/C++
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- Qt中来自不同功能的按钮引用
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- ImGui 在单击按钮后冻结
- WinAPI 无法创建按钮
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- 按钮按下打开 OLED ESP32
- 如何通过拖动鼠标QT检查按钮?鼠标移动事件