2

フォームとフォーム内のパネルがあります。これは、正常に機能するsetparentを処理するためのコードです。

hWnd = FindWindow("MapleStoryClass", null);
Panel_Handle();
SetParent(hWnd, PanelHandle);
SetWindowPos(hWnd, (IntPtr)SpecialWindowHandles.HWND_TOP,
    -3, -25, 800, 600, SetWindowPosFlags.SWP_NOSIZE);

私が持っている唯一の質問は、setparentがコードを介して機能したかどうかをどのように判断できるかということです。setparentが正常に機能したことを視覚的に確認できることは理解していますが、setparentが機能したかどうかを確認するには、コードにチェックを入力する必要があります。

4

2 に答える 2

1

GetParentWinApi関数を使用してみることができます。

上記のリンクから:

ウィンドウが子ウィンドウの場合、戻り値は親ウィンドウへのハンドルです。ウィンドウがWS_POPUPスタイルのトップレベルウィンドウである場合、戻り値は所有者ウィンドウへのハンドルです。

関数が失敗した場合、戻り値はNULLです。拡張エラー情報を取得するには、GetLastErrorを呼び出します。この機能は通常、次のいずれかの理由で失敗します。

•ウィンドウは、所有されていないか、WS_POPUPスタイルを持たないトップレベルウィンドウです。
•所有者ウィンドウはWS_POPUPスタイルです。

于 2012-12-02T01:34:24.187 に答える
0

これはC#なので、Panel.Parentがnullかどうかを確認できます。

Panel.Parentは、Panelの親への参照です

于 2012-12-02T01:36:48.990 に答える