Как установить флаг / параметр «всегда сверху» в окне, внешнем по отношению к моему приложению? - PullRequest
3 голосов
/ 28 января 2010

Существует ли управляемый способ установки флага / настройки всегда наверху в окне, являющемся внешним по отношению к моему приложению, или мне потребуется P / Invoke для встроенной функции?

И если P / Invokeединственный способ, что требуется вызов функции и из какой DLL?

1 Ответ

8 голосов
/ 28 января 2010

После того, как я задал вопрос, я исследовал это и обнаружил, что похоже на хороший пример того, как этого добиться с помощью p / invoking SetWindowPos в user32.dll. Я вернусь и приму этот ответ, если это сработает.

    [DllImport("user32.dll")]
    static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

    static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);

    const UInt32 SWP_NOSIZE = 0x0001;
    const UInt32 SWP_NOMOVE = 0x0002;
    const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;

    public static void MakeTopMost (IntPtr hWnd)
    {
        SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...