gpt4 book ai didi

c++ - 自动按下按钮?

转载 作者:行者123 更新时间:2023-11-30 03:53:34 26 4
gpt4 key购买 nike

我按下按钮一次。之后我想自动按下按钮。我试试这段代码。但没有工作。按钮变量名就可以了。

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的类定义中添加这个方法

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++ - 自动按下按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com