移动窗口时触发事件

时间:2013-01-22 14:51:40

标签: c# wpf plugins itunes

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

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

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

1 个答案:

答案 0 :(得分:2)

我认为WINDOWPOS structure正是您所寻找的。 Other window structures可能派上用场。

一些谷歌搜索出现another示例,不使用WINDOWPOS:

  

1,调用API FindWindow()来检索窗口句柄(Uuse 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);
    }