3

我目前正在开发一个 iTunes 插件,当拖动、调整大小等时,我需要让我的 WPF 插件贴在 iTunes 窗口旁边。目标是让 iTunes 并排贴在我的 wpf 应用程序上。

我正在寻找一种方法来跟踪另一个窗口(在我的情况下是 iTunes)的移动(调整大小、移动)。Windows SDK 的 iTunes COM 提供最大化和最小化事件,遗憾的是没有调整窗口大小和移动窗口的事件。

我试过win32 setParent 函数没有成功。我认为这不是解决我的问题的合适方法。我在网上彻底搜索过,但一无所获。

4

1 回答 1

2

我认为WINDOWPOS 结构是您正在寻找的。 其他窗口结构可能会派上用场。

一些谷歌搜索出现了另一个例子,它不使用 WINDOWPOS:

1、调用API FindWindow() 获取窗口句柄(使用SPY++获取ClassName & WindowName这两个参数);

2、调用API GetWindowRect() 获取指定窗口的大小和位置。

代码片段

    [DllImport("user32.dll")]
    private static extern IntPtr FindWindow(string className, string windowName);

    [DllImport("user32.dll")]
    private static extern int GetWindowRect(IntPtr hwnd, out Rectangle rect);

    private void button2_Click(object sender, EventArgs e)
    {
        string className = "yourClassName";
        string windowName = "yourWindowName";

        Rectangle rect;
        IntPtr hwnd = FindWindow(className, windowName);
        GetWindowRect(hwnd, out rect);
    }
于 2013-01-22T14:57:25.637 回答