1

vb .netから実行できるように、dllに変換した大きなvb6アプリがあります。デバッグで vb6 & .net プロジェクトを実行すると、すべて正常に動作します。モーダルではないフォームを開くと、すべてが常に正常に機能します。

ただし、vb6 を dll にコンパイルすると、モーダルで開いたときに vb6 フォームが .Net コンテナー フォームに配置されません (非モーダルは問題ありません)。vb6 フォームは画面の左上に表示されます。

私は、2007 年 7 月の Eduardo Campano による .Net アプリケーションへの vb6 フォームの埋め込みに関する codeproject に関する記事に基づいて、このソリューションを思いつきました。素晴らしい記事であり、私のように .net に変換するコードが 100 万行ある場合は良いアイデアです。

サンプル コードはありますが、フォーラムにアップロードする方法がわかりません。

vb6 をコンテナーにロードするためのコードは、.net のコンテナー ロード イベントからのものです。

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

0 に答える 0