Возможно ли каскадное окно слайд-шоу ppt и мое приложение, используя код C # - PullRequest
0 голосов
/ 11 мая 2010

Я создал приложение, которое выглядит как новостная лента. Предполагается, что он работает на машине, на которой всегда запущено PPT-слайд-шоу. Я поставил this.TopMost = true

Таким образом, приложение тикера перекрывает PPT. Но я хочу, чтобы приложение тикера, а также ppt были видны вместе. Это возможно, только если я могу каскадировать приложения.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

2 голосов
/ 11 мая 2010

Не используйте TopMost = true, вместо этого установите границу окна для обоих приложений. Хитрость заключается только в том, как установить прямоугольник окна для приложения PPT.

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;

[StructLayout(LayoutKind.Sequential)]
struct RECT
{
    public int left;
    public int top;
    public int right;
    public int bottom;
}

class WindowHelper
{
    [DllImport("user32.dll")]
    static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth,
    int nHeight, bool bRepaint);

    static void SetWindowRect()
    {
        Process p = new Process();
        p.StartInfo.FileName = "PPT.exe";
        p.Start();
        p.WaitForInputIdle();
        IntPtr hWnd = p.MainWindowHandle;
        int width = 300;
        int height = 600;
        // you can use Screen.PrimaryScreen.WorkingArea to set proper size
        MoveWindow(hWnd, 0, 0, width, height, true);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...