相关疑难解决方法(0)

Win32:带一个窗口到顶部

我有一个Windows程序,里面有两个2个窗口:

hwnd (main interface)

hwnd2 (toplevel window, no parent, created by hwnd)
Run Code Online (Sandbox Code Playgroud)

当我双击hwnd时,我需要hwnd2弹出并显示一些数据,所以我使用这个函数将hwnd2带到顶部:

BringWindowToTop(hwnd2);
Run Code Online (Sandbox Code Playgroud)

hwnd2被带到了顶峰,但有一点奇怪.当我再次点击hwnd2时,hwnd(主界面)会自动再次弹出.我试图使用以下函数来解决这个问题,但它们没有工作.

SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
                                                                  //doesn't work

BringWindowToTop(hwnd2);    //This is the function brings hwnd2 to top

SetForegroundWindow(hwnd2); //doesn't work

SetWindowPos(hwnd2, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); 
                                                                  //doesn't work

SetWindowPos(hwnd2, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
                                       // hwnd2 "always" on top, not what I want

SetActiveWindow(hwnd2); // doesn't work too (for replying to Magnus Skog, thanks)

SwitchToThisWindow(hwnd2, TRUE);// …
Run Code Online (Sandbox Code Playgroud)

c++ winapi visual-c++

31
推荐指数
6
解决办法
5万
查看次数

标签 统计

c++ ×1

visual-c++ ×1

winapi ×1