0
我正在研究具有多個窗口的項目。 我想在按下回車鍵時關閉活動窗口。確定窗口是否聚焦/活動/前景
問題是所有的窗戶都關閉了。我想檢查窗口是否聚焦/活動或在前景,以便我可以改變焦點,所以它不會關閉所有窗口。
當我運行代碼時,我總是得到「我不關閉」。過了一段時間,他們都關門了。
if(GetFocus() == currentWindow->getHandler() || GetForegroundWindow() == currentWindow->getHandler() || GetActiveWindow() == currentWindow->getHandler())
{
std::cout << "Is the same";
if(windows.front() != currentWindow)
{
SetForegroundWindow(SetFocus(windows.front()->getHandler()));
DeleteWindow(currentWindow)
}
else
{
SetForegroundWindow(SetFocus(windows.back()->getHandler()));
DeleteWindow(currentWindow);
}
}
else
{
std::cout << "I dont close!";
DeleteWindow(currentWindow);
}
Sleep(500);
}
做一些調試。看看如果評估的條件如何。這將告訴你爲什麼選擇「我不關閉」分支。顯然我們不能告訴你。那個叫'睡眠'的電話是什麼? –
我使用了調試,焦點窗口的更改按照我的規劃進行,但所有窗口仍然關閉。睡眠是這樣,我可以適當地監控它。否則,我每秒得到50次更改。在DeleteWindow(currentWindow)中,我只說exit(1);有沒有一種方法可以關閉窗戶? –