如果某些用戶點擊了某個按鈕,如何正確檢查Windows?目前,我有以下點擊校驗碼:最可靠的鼠標點擊檢查
bool cButton::isCursorCrossing () const
{
int posx, posy;
g_pVGuiSurface->SurfaceGetCursorPos (posx, posy);
if (posx > m_render_x && posx < m_render_x + buttonSize)
{
if (posy > m_render_y && posy < m_render_y + buttonSize)
{
return true;
}
}
return false;
}
bool cButton::isClicked () const
{
if (isCursorCrossing ())
{
if (GetAsyncKeyState (0x01) & 1)
{
return true;
}
}
return false;
}
但有時不工作 - 我必須單擊按鈕5至10倍,看結果,我認爲這是由GetAsyncKeyState
造成的。
這不是按鈕在Windows中的工作方式。當用戶點擊一個按鈕時,系統會排隊消息以指示事件已經發生。我不知道你爲什麼要使用'GetAsyncKeyState'。你會想把所有這些代碼扔掉,然後回到繪圖板。第1步是瞭解消息。 –
@DavidHeffernan,但我沒有使用Windows窗體應用程序 - 它使用DX繪圖系統,並且我正在爲它創建插件 - 所以我沒有收到消息 – legitberg
問題標籤爲winapi。也許你需要退後一步。編輯問題並提供有關您實際正在執行的操作的明確細節,併爲此代碼提供上下文。 –