![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мне понадобилось, чтобы каждое окно помнило какую-нибудь дополнительную информацию.
Вариант с хеш-таблицей по описателю, мне кажется, не совсем архитектурен, ну как бы это объяснить, типа окно в винде, а таблица и информация - в программе. Вот например, любое окно где-то хранит свои координаты, у него есть какой-то свой личный блок памяти, и этот блок как бы на уровне винды, извиняюсь за такую терминологию. И у каждого класса блок памяти разный по размеру и структуре. Ну и мне кажется целесообразным, чтобы эта дополнительная информация хранилась в этом же блоке памяти. В общем как задавать размер этого блока при создании класса окна, как с ним работать? -------------------- |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
В общем, я решил сделать свой оконный класс на основе стандартного edit. Ну я, значит взял информацию о классе edit, взял его оконную процедуру запомнил (пригодится), взял его cbWndExtra (оно равно 6 почему-то), увеличил на резмер нужной мне структуры.
Потом при создании вызываю GetWindowLong(H, OldSize) (ну или GetWindowLong(H, GWL_USERDATA)), чтобы получить указатель на нужные мне данные и записать в них стартовые значения, возвращается ноль. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 17:52 |