我正在创建一个程序,该程序在特定时间(例如,类似于某些聊天客户端)显示一个弹出窗口,用户可以单击该弹出窗口。但是,我不想把重点从当前应用程序中移开。

我现在的操作方式是将HWND与WS_POPUPWINDOW一起使用,并最小化然后还原窗口。但是,这使当前应用程序失去了重点。设置前景或隐藏并显示窗口并没有使其出现在前景上。我希望能够继续使用HWND,以便可以在此窗口中使用其他元素,但是我不知道如何在不窃取焦点的情况下为其提供前景。

我使用win32和c++。

最佳答案

要显示而不激活:

ShowWindow(hwnd, SW_SHOWNOACTIVATE);

在不激活的情况下加注:
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

10-04 22:00
查看更多