gpt4 book ai didi

c# - 重新绘制由 SetParent API 创建的 MDI 子项的问题

转载 作者:太空狗 更新时间:2023-10-29 15:42:21 25 4
gpt4 key购买 nike

我有一个用 C 语言编写的遗留应用程序,它由一个主窗口和几个从菜单选项打开的 mdi 子窗口组成。为了允许用 C# 编写新的 mdi 子项,我创建了一个 C++ COM 互操作层,该层由 C 代码调用,然后调用 C# 代码。然后,我使用 SetParent API 将 C 主窗口设置为打开的任何 C# 窗口的新父窗口。这似乎可行 - C# 窗口的行为类似于主窗口的 MDI 子窗口。但是,子窗口没有正确绘制,如果您将其他窗口移到它上面或将它移动到主窗口的边缘,它只会变得更糟 - 它会与其他窗口的部分一起绘制,或者在它移动时留下一些自己的碎片.此外,屏幕响应不是很好,例如您不能从一个文本框切换到另一个文本框。

请不要质疑我的解决方案的体系结构(相信我,这是唯一的方法),但是如果您曾经遇到过这样的问题,它是由 SetParent 创建的 child ,我很想听听您是否成功了修复它。

最佳答案

试试这些:

  1. 在出现问题时通常运行的处理循环中添加 Application.DoEvents。

  2. 尝试从主窗体的绘制事件中刷新 MDI 窗体。

关于c# - 重新绘制由 SetParent API 创建的 MDI 子项的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com