> Чтобы с ним можно было работать как с обычным окном – > обрабатывать сообщения, отдавать команды, и т.д.
> Например, я хочу такой контрол создать. > Есть ListBox, из десяти строчек. Под ListBox’ом > панель навигатора, состоящая из четырёх кнопок (первый, > последний, следующий, предыдущий) и из поля ввода, где > отображается текущая страница.
> С контролом связан массив данных, например, из 100 > элементов. При нажатии на кнопки осуществляется > пролистывание этих элементов. >
А на фига это в один контрол пихать?
> Как вообще люди свои контролы пишут?
Ну вот так и пишут - создаешь окно, создаешь в нем дочерние окна и пересылаешь им все сообщения которые могут их интересовать.
Чтобы с ним можно было работать как с обычным окном – обрабатывать сообщения, отдавать команды, и т.д.
Например, я хочу такой контрол создать.
Есть ListBox, из десяти строчек. Под ListBox’ом панель навигатора, состоящая из четырёх кнопок (первый, последний, следующий, предыдущий) и из поля ввода, где отображается текущая страница.
С контролом связан массив данных, например, из 100 элементов. При нажатии на кнопки осуществляется пролистывание этих элементов.
Как вообще люди свои контролы пишут?
[Win32] Венда шлёт сообщения не от хорошей жизни, а для того, чтобы максимально облегчить управление своими внутренними элементами управления тебе, программисту «снаружи».25.07.08 08:29 Автор: HandleX <Александр М.> Статус: The Elderman
Т.е. сообщениями венда попыталась обеспечить максимальную гибкость для тебя. А вот тебе, комбинируя эти элементы управления в некий модуль-представитель бизнес логики модели данных, гораздо легче, и нет нужды слать сообщения самому себе, достаточно вызывать свои функции в модуле. Т.е. просто отлавливай нужные в твоём случае сообщения от виндовозных контролов, и формируй на основе этого логику, нужную тебе.
И постарайся чётко отделить мух от котлет — контролы винды, бизнес-логику твоей формы, и модель данный (список в твоём случае), с которым эта логика работает.
Тяжело тебе — далеко не уедешь без ООП, поскольку без него будет просто некая группа функций, отвечающая за создание, инициализацию, работу и уничтожение твоего модуля управления списком. В ООП за это отвечал бы класс, с которым гораждо легче "жить" -))
Почитай что-нибуть про продвинутые парадигмы взаимодействия с пользователем — MVC, MVP и проч.
[Win32] Что ж тебе неймется то :-)24.07.08 22:59 Автор: amirul <Serge> Статус: The Elderman
> Чтобы с ним можно было работать как с обычным окном – > обрабатывать сообщения, отдавать команды, и т.д.
> Например, я хочу такой контрол создать. > Есть ListBox, из десяти строчек. Под ListBox’ом > панель навигатора, состоящая из четырёх кнопок (первый, > последний, следующий, предыдущий) и из поля ввода, где > отображается текущая страница.
> С контролом связан массив данных, например, из 100 > элементов. При нажатии на кнопки осуществляется > пролистывание этих элементов. >
А на фига это в один контрол пихать?
> Как вообще люди свои контролы пишут?
Ну вот так и пишут - создаешь окно, создаешь в нем дочерние окна и пересылаешь им все сообщения которые могут их интересовать.