0

我正在编写一个 C# 应用程序,它需要将 gnuplot 图移动到用户屏幕上的特定位置。为此,我使用 DllImport 将几个函数引入我的程序。特别是 FindWindowByCaption 和 MoveWindow 以及其他一些。到目前为止,这对我来说一直很好,但突然图表停止了移动。

我发现生成图表需要更长的时间,它会在创建窗口之前尝试执行 MoveWindow 函数,因此实际上不会移动窗口。我不确定为什么现在这是一个问题,因为在早期版本的代码中它很好。

由于某种原因,FindWindowByCaption 函数会在窗口实际存在之前找到窗口句柄。

我在一个循环中有 find 窗口函数,它应该尝试执行,直到找到正确的句柄。每个图表的名称都会发生变化。

IntPtr windowId = IntPtr.Zero;
        while (windowId == IntPtr.Zero)//keeps trying to get the id until it has it
            windowId = FindWindowByCaption(IntPtr.Zero, "p " + polyValue + " s " + (dataLocation + 1));

由于某种原因,它在实际创建 gnuplot 图之前找到了它的句柄,然后它试图过早地运行 MoveWindow 函数,因此当实际生成图时它不会去正确的位置。

任何的意见都将会有帮助

谢谢,

-杰克

4

0 回答 0