V
Vadik(R)
Люди, столкнулся с довольно частой проблемой повторного запуска приложения. Проблему повторного запуска решил, потом решил сделать так, чтобы окно уже запущенного приложения стало активным. Далее, набил шишку, что нельзя свернуть "найденное окно". Проблему тоже решил тем, что ShowWindow применяю не к форме, а к Application. Но вот, собственно, вопрос: почему если написать:
То функция возвратит 0, якобы родителя нет, а если вызвать функцию GetWindowLong с параметром GWL_HWNDPARENT:
То функция возвратит не ноль, а действительно родителя формы?
Чем отличаются вызовы этих функций? Потому что, сколько не искал в интернете их описания, для обоих написано (если вторую вызывать с соответствующим параметром), что они возвращают хэндл родителя. Так почему же тогда я могу получить родителя Form1 только написав:
А написав:
Я получаю ноль? В целом, хоть моя проблема с повторным запуском и решена, мне теперь просто стало интересно.
Код:
GetParent(Form1.Handle);
Код:
GetWindowLong(Form1.Handle, GWL_HWNDPARENT);
Чем отличаются вызовы этих функций? Потому что, сколько не искал в интернете их описания, для обоих написано (если вторую вызывать с соответствующим параметром), что они возвращают хэндл родителя. Так почему же тогда я могу получить родителя Form1 только написав:
Код:
GetWindowLong(Form1.Handle, GWL_HWNDPARENT);
Код:
GetParent(Form1.Handle);