Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
1

Что такое Container и OWNER и в чём отличие от PARENT

03.08.2015, 20:19. Показов 2100. Ответов 3

Author24 — интернет-сервис помощи студентам
Поискал инфу в интернете, но внятное объяснение найти не смог, на счёт разницы между Parent и Owner. Можно ли менять Owner? На основе чего он "крепится", тоже на Handle как и Parent? И что это собственно такое (раз это не то же самое что Parent) ?

И в чём отличие Container от Parent и каким образом "крепится" он? Например, у TabControl идентификатор Handle единственный, но каждая страница Container и каким-то образом присваивает другие контролы.

Прошу знающих людей изгнать сомнения по этому поводу.
Заранее благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2015, 20:19
Ответы с готовыми решениями:

В чем разница между owner И parent у контролов?
В чем разница между owner И parent у контролов? Можно ли делать так: MyPanel :=...

Что такое TableAdapterManager и TableAdapter и в чём их отличие?
Не могу понять что такое TableAdapterManager и TableAdapter в чём их отличие?

Что такое приближенный алгоритм и в чем отличие от эвристического или жадного?
Правильно ли я понимаю, что приближенный алгоритм - это алгоритм, который всегда дает почти точное...

Что такое char *a[2], и в чем его отличие от char *a?
Предположу, что char *a - указатель на символьный элемент(адрес), а char *a - массив указателей на...

3
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
03.08.2015, 22:48 2
А что такое Parent, Owner, Handle, Container и TabControl?
Я, конечно, понимаю что значат эти слова.., просто в WinAPI я такого не встречал в виде типов.
Если это из MFC или ещё откуда-то, тогда советую указать на этот момент для ускорения решения данной проблемы.
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
03.08.2015, 23:36  [ТС] 3
castaway, Parent = GetParent/SetParent window:

C++
1
2
3
HWND WINAPI GetParent(
  _In_ HWND hWnd
);
Owner window = GetWindow + GW_OWNER

GW_OWNER 4 The retrieved handle identifies the specified window's owner window, if any. For more information, see Owned Windows.
Что такое Container control - я понимаю чисто по смыслу, то есть контрол (окно) которое может содержать в себе другой контрол (окно), например GroupBox, или TabControl. Хотя TabControl чисто в WinAPI не существует. Но принцип вроде бы тот же, container-овский

Handle = hWnd (Window Handle) = уникальный идентификатор объекта созданного по какому-либо классу. Этот фрукт, вроде как раз в WinAPI вокруг да около?!...
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
06.08.2015, 18:46 4
Я так понял, речь идёт о WinForms.
Если опустить различные тонкости о временных "хранилищах" контролов (ParkingWindow) и ещё не созданных окнах, то: Parent это непосредственно родительский элеменет управления нашего элемента управления (скажем просто "контрол"), а их хэндлы (Handle) это дискрипторы окон, с которыми они связаны (которые таже имеют подобное "родство").
ControlCollection - это коллекция контролов, являющихся дочерними контролами владельца (Owner) этой коллекции (MyForm->Controls->Add(MyButton) тождественно MyButton->Parent = MyForm). Если посмотреть хотябы в MSDN то у этого класса один конструктор, требующий указывать владельца (Owner). Получается у Control'а есть контейнер других контролов, а у этого контейнера есть владелец - Control, когда у Control'а что-то происходит (например он создался), то он выполняет необходимые действия над дочерними контролами через этот контейнер (создаёт те, у которых свойство visible = true).
Теперь о TabControl:
В WinAPI класс WC_TABCONTROL очень неплохо существует, но сам по себе он мало чего умеет (рисует вкладки с иконками или без, позволяет переключаться по ним и обрабатывать события по их переключению). TabPage - это контрол наподобие Panel или ContainerControl, или Form без заголовка и рамки (грубо говоря), который отображается или прячется при переключении вкладок. Вот так можно реализовать Tabbed Dialog на WinAPI.
1
06.08.2015, 18:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.08.2015, 18:46
Помогаю со студенческими работами здесь

Отличие Controls.Add(); от .Parent =
TextBox text = new TextBox(); text.Parent = this; text.Bounds = new Rectangle(20, 125, 75, 20); ...

В чем отличие и что лучше изучать???
Вот есть язык программирования C, есть C++, есть C#, есть 1С. Так вот какой из них лучше учить


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru