11

別の外部アプリ(.NET関連ではなく純粋なWin32)のTopMostフォームとして.NETフォームを作成して、そのWin32Appの上にとどまるようにしますが、実行中の残りのアプリは作りません。

私はWin32App(Win32App自体によって提供される)のハンドルを持っており、C#のP /Invokeを介してWin32SetParent ()関数を試しましたが、.NETフォームがWin32Appに限定され、それは私が望むものではありません。

4

3 に答える 3

17

あなたが探しているのはP/Invokeだと思いますSetWindowLongPtr(win32window, GWLP_HWNDPARENT, formhandle)

Google検索

于 2008-09-25T13:42:20.973 に答える
2

はい!SetWindowLongPtr (x64 セーフ) の P/Invoke インポートが既にあります。そして、Reflector を使用して Form.Owner プロパティ (つまり get_Owner(Form value) メソッド) を検索し、所有者を変更することができました

SetWindowLongPtr(childHdl, -8, OwnerHdl)

ここに解決策を投稿する前に、-8 (0xFFFFFFFFFFFFFF8) の意味を調べていましたが、Joel は既に指摘しています。

ありがとう!

于 2008-09-25T13:57:36.583 に答える