MFC 将指定的窗口激活并显示在桌面最前端,为什么我的没效果?
无论我的指定窗口是在正常显示的,还是最小化,或是最小化在托盘,都不行我的代码,如下:typedefvoid(WINAPI*PROCSWITCHTOTHISWINDOW)(...
无论我的指定窗口是在正常显示的,还是最小化,或是最小化在托盘,都不行
我的代码,如下:
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL);
PROCSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32 = GetModuleHandle("user32");
SwitchToThisWindow = ( PROCSWITCHTOTHISWINDOW)
GetProcAddress(hUser32, "SwitchToThisWindow");
SwitchToThisWindow(gethwnd, TRUE);
gethwnd就是我指定的那个应用程序的窗口句柄 展开
我的代码,如下:
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL);
PROCSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32 = GetModuleHandle("user32");
SwitchToThisWindow = ( PROCSWITCHTOTHISWINDOW)
GetProcAddress(hUser32, "SwitchToThisWindow");
SwitchToThisWindow(gethwnd, TRUE);
gethwnd就是我指定的那个应用程序的窗口句柄 展开
1个回答
展开全部
不是这个接口吧,SetWindowPos或者还有个Fource什么的接口可以实现窗口显示在最上层
追问
::SetWindowPos(gethwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE |SWP_NOSIZE);
::SetForegroundWindow(gethwnd);
::SetActiveWindow(gethwnd);
::SetFocus(gethwnd);
我都试过了,还是没效果
追答
::SetWindowPos(gethwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE |SWP_NOSIZE);
::SetForegroundWindow(gethwnd);
理论上是可以的,你可以看一下是不是其他的地方又设置了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询