показывать окно в полноэкранном режиме - PullRequest
2 голосов
/ 22 февраля 2011

как я могу показать окно при воспроизведении фильма в полноэкранном режиме без выхода из полноэкранного режима проигрывателя фильмов?Я просто хочу, чтобы окно появилось поверх фильма.Я знаю, что это возможно, потому что Yahoo Messeger делает это каждый раз, когда показывает, что Pearson выполнил вход или выход, и я уверен, что есть и другие программы, которые делают это, но сейчас я просто не могу вспомнить.

это может быть в C / C ++ mfc, win api, c #, wpf, это не имеет значения.

Ответы [ 3 ]

3 голосов
/ 22 февраля 2011

Просто покажите окно с z-порядком, которое помещает его поверх полноэкранного окна. Я думаю, что вы можете сделать это, позвонив SetWindowPos мимо HWND_TOP. Примерно так:

SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

Вы также можете включить SWP_NOACTIVATE или, возможно, некоторые другие SWP_*** опции. Вы можете проверить параметр uFlags в функции SetWindowPos для различных сообщений SWP_***.

0 голосов
/ 22 февраля 2011

SetForegroundWindow выведет плеер из полноэкранного режима, и BringWindowToTop не будет работать. Все остальные методы работают, если окно из того же приложения, что и видеопроигрыватель, но мне нужно вставить окно из видеопроигрывателя (который находится в полноэкранном режиме) из другого приложения.

0 голосов
/ 22 февраля 2011

C # Использовать SetForegroundWindow () для user32.dll

Подробнее о стековом потоке 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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...