2012-12-02 4 views
2

У меня есть форма и панель в форме, и это мой код для обработки setparent, который отлично работает.Проверьте, работает ли функция SetParent?

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

Единственный вопрос, который у меня есть, - как я могу определить, работал ли сработавший через код код? Я понимаю, что я могу визуально проверить, что setparent работал нормально, но мне нужно ввести чек в мой код, чтобы увидеть, работает ли сэлемент.

ответ

1

Вы можете попробовать использовать функцию WinApi GetParent.

Сверху Ссылка:

Если окно является дочерним окном, возвращаемое значение является дескриптор родительского окна. Если окно является окном верхнего уровня с типом WS_POPUP , возвращаемое значение является дескриптором окна владельца.

Если функция не работает, возвращаемое значение равно NULL. Чтобы получить расширенную ошибку информацию, вызовите GetLastError. Эта функция обычно не работает для : одна из следующих причин:

• Окно - это окно верхнего уровня, которое не имеет статуса или не имеет стиля WS_POPUP.
• Окно владельца имеет стиль WS_POPUP.

0

, поскольку это C# я бы просто сказать, что вы можете проверить, если Panel.Parent является нулевым

Panel.Parent является ссылкой на родителя Группы

Смежные вопросы