wxWidgets框架中是否有任何函數,例如click(),其功能是模擬左鍵單擊的鼠標?如何使用wxWidgets模擬鼠標點擊
1
A
回答
1
不,沒有這樣的功能。如果你真的需要這樣做,例如因爲您想在另一個應用程序中執行某些操作,您需要自己編寫特定於平臺的代碼(例如,在Windows下使用SendInput())。
如果你想使用這個在自己的應用程序,雖然執行一些代碼,有一個更好的解決方案:與其做不支持的,脆弱的和醜陋的
void MyClass::OnLeftUp(wxMouseEvent& event)
{
... do something with click at event.GetPosition() ...
}
void MyOtherFunction()
{
wxMouseEvent event(...);
... initialization not shown because there is no right way to do it anyhow ...
myObject->ProcessEvent(event);
}
只是重構代碼要做得像而不是:
void MyClass::OnLeftUp(wxMouseEvent& event)
{
HandleClick(event.GetPosition());
}
void MyClass::HandleClick(const wxPoint& pos)
{
... do something with click at pos ...
}
void MyOtherFunction()
{
myObject->HandleClick(position);
}
1
如果你只是在談論模仿在你的wxWidgets應用另一個按鈕點擊,我已經試過這之前:
創建正確類型的假wxEvent,告知事件關心對象 關於使用SetEventObject(),並將層次結構中的父級wxWindow告知 ProcessEvent(myNewEvent)。您可能想要使用wxGetTopLevelParent()獲取最上面的框架/對話框
如果您正在討論在另一個非wxWidgets進程中模擬點擊,則可以使用OS的可訪問性API執行此操作。 wxAccessibility應該能夠在Windows上爲此提供幫助 - 對於其他操作系統,上次我聽說(幾年前已獲准),您必須使用本機操作系統功能。
0
您可以使用wxControl :: Command()方法。根據文檔:
模擬用戶向該項目發出命令的效果。
List of events to use with wxCommandEvent constructor
您可以模擬這樣的一個按鈕點擊:
$this->MyButton->Command(new wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED));
也有wxUIActionSimulator類,你可以用它來模擬用戶界面操作。
相關問題
- 1. 如何模擬鼠標點擊事件
- 2. 如何模擬鼠標點擊?
- 3. 如何模擬鼠標點擊?
- 4. 模擬鼠標點擊QWebEngineView
- 5. 模擬鼠標點擊motionevents
- 6. 模擬鼠標點擊
- 7. 模擬鼠標點擊AS3
- 8. Linux - 用Python模擬鼠標點擊
- 9. 如何使用javascript模擬鼠標點擊(在Google地圖中)?
- 10. 在MSPaint中模擬鼠標點擊
- 11. 模擬鼠標點擊下拉菜單
- 12. 模擬鼠標點擊服務
- 13. 在Mac上模擬鼠標點擊
- 14. 模擬真實的鼠標點擊
- 15. 在R中模擬鼠標點擊
- 16. 模擬鼠標點擊側按鈕
- 17. 模擬鼠標點擊板內(JPanel)
- 18. 試圖模擬鼠標點擊/拖動
- 19. 在jQuery中模擬鼠標點擊
- 20. 模擬移位鼠標點擊
- 21. 模擬Python上的鼠標點擊
- 22. C++鼠標點擊模擬代碼
- 23. 鼠標點擊模擬在JavaScript
- 24. 模擬鼠標點擊背景表格
- 25. 在NSWindow中模擬鼠標點擊
- 26. 使用jQuery模擬座標上的鼠標點擊
- 27. 如何用WebBrowser控件模擬鼠標點擊
- 28. 如何在Python上用Xlib模擬鼠標點擊
- 29. 使用SendMessage模擬用戶鼠標點擊
- 30. win32:模擬點擊而不模擬鼠標移動?