如何在不退出电影播放器的全屏模式的情况下全屏播放电影时如何显示窗口?我只是希望窗口能够在电影的顶部出现。我知道这是可行的,因为雅虎messeger每次向你展示一个皮尔逊已登录或退出时都会这样做,而且我确信还有其他程序也可以这样做,但我现在还记不清了。
它可以在C / C ++ mfc中,win api,c#,wpf它不会。
答案 0 :(得分:3)
只需显示带有z顺序的窗口,该窗口将其置于全屏窗口的顶部。我想你可以通过调用SetWindowPos
传递HWND_TOP
来做到这一点。像这样:
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
您可能还想包含SWP_NOACTIVATE
,或者可能包含其他SWP_***
个选项。您可以检查SetWindowPos函数中的 uFlags 参数,查看不同的SWP_***
消息。
答案 1 :(得分:0)
C# 使用user32.dll的SetForegroundWindow()
有关stackoverflow的更多信息 C# Force Form Focus
// Sets the window to be foreground
[DllImport("User32")]
private static extern int SetForegroundWindow(IntPtr hwnd);
// Activate or minimize a window
[DllImportAttribute("User32.DLL")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_SHOW = 5;
private const int SW_MINIMIZE = 6; private const int SW_RESTORE = 9;
private void ActivateApplication(string strAppName)
{
Process[] pList = Process.GetProcessesByName(strAppName);
if (pList.Length > 0)
{
ShowWindow(pList[0].MainWindowHandle, SW_RESTORE);
SetForegroundWindow(pList[0].MainWindowHandle);
}
}
答案 2 :(得分:0)
SetForegroundWindow将使播放器退出全屏模式,而BringWindowToTop将无效。如果窗口来自与视频播放器相同的应用程序,那么所有其他方法都会起作用,但我需要的是从另一个应用程序的视频播放器(全屏显示)中放入一个窗口。