0

所以我从这里提供的答案中找到了一个例子

有一个答案给出了将记事本窗口移动到屏幕左上角的代码示例。我试过了,效果很好。然后我在我正在做的一个小项目上尝试了它,但我无法移动它。

注意:我确实将“记事本”更改为我想要移动的窗口顶部的名称。

using System;
using System.Runtime.InteropServices; // For the P/Invoke signatures.

public static class PositionWindowDemo
{

// P/Invoke declarations.

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

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

const uint SWP_NOSIZE = 0x0001;
const uint SWP_NOZORDER = 0x0004;

public static void Main()
{
    // Find (the first-in-Z-order) Notepad window.
    IntPtr hWnd = FindWindow("Notepad", null);

    // If found, position it.
    if (hWnd != IntPtr.Zero)
    {
        // Move the window to (0,0) without changing its size or position
        // in the Z order.
        SetWindowPos(hWnd, IntPtr.Zero, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
    }
}

}

我举个例子。考虑一下 Visual Studios 以及它如何具有解决方案资源管理器窗口或输出窗口,我可以用鼠标拖动它们并移动它们或取消停靠它们。是否有一种方法可以让应用程序内部具有类似于 Visual Studios 的窗口并获取它们在程序中的位置?

我在这里看到了很多关于移动窗口或查找活动窗口等的答案。但是我不确定我是否能够访问另一个应用程序内部的这个子窗口。

谢谢

4

0 回答 0