1
活動窗口在wxGTK下的IsActive()中沒有返回true。wxGTK中的wxFrame :: IsActive()
我的軟件有一個主窗口和一組工具窗口,全部源自wxFrame。 移動主窗口時,捕捉移動事件並在所有工具窗口中調用位置方法,以便它們一起移動。
每個工具窗口都可以獨立移動,當用戶移動它們時,我需要捕捉移動事件並更新它們相對於主窗口的位置。要檢查它們是否被用戶移動或主窗口使用IsActive()。這適用於wxMSW和wxOSX,但不適用於wxGTK。
void ToolBox::OnMove(wxMoveEvent& event)
{
wxPoint shift;
if(IsActive()) {
wxPoint newpos = GetPosition();
(calculate new postion)
}
}
工具箱從wxFrame派生
這是wxGTK的錯誤嗎?更好的方式來做到這一點?
感謝您的信息。這是一個很好的解決方法,但不幸的是工作並不順利。它可以檢測用戶的移動是否正常,但在主窗口的控制下移動窗口只能在非常緩慢的情況下運行。更快的移動似乎會觸發標誌復位後發生的附加移動事件。 目前在Ubuntu中使用Unity進行測試。 到目前爲止,最好的解決方法是通過檢測其面板中的鼠標單擊來顯式設置活動窗口,但這並不理想。即使使用窗口中的控件仍會對IsActive()產生錯誤的響應。 – doctorafternoon
嘗試重置下一個'wxEVT_IDLE'中的標誌,這是駭人聽聞,但應該照顧到這個問題。 –