1

我有一个大型 vb6 应用程序,我把它变成了一个 dll,所以我可以从 vb .net 运行它。当我在调试中运行 vb6 和 .net 项目时,一切正常。如果我以非模态方式打开表格,那么一切都可以正常工作。

但是,当我将 vb6 编译成 dll 时,当我以模态方式打开它们时,vb6 表单并没有被放置在 .Net 容器表单中(非模态也可以)。vb6 表单位于屏幕的左上角。

我根据Eduardo Campano 在 2007 年 7 月发表的关于在 .Net 应用程序中嵌入 vb6 表单的文章提出了这个解决方案。如果你有一百万行代码可以像我一样转换为 .net,那么这是一个好主意。

我有示例代码,但看不到如何将其上传到论坛。

将 vb6 加载到容器中的代码来自 .net 中的容器加载事件:

 SetParent(mintFormHandle, Me.Handle.ToInt32)
 SendMessage(Me.Handle.ToInt32, WM_NCACTIVATE, 1, 0)
 SetForegroundWindow(Me.Handle.ToInt32)
 LockWindowUpdate(0)
4

0 回答 0