Кто-нибудь делал свои контролы, т.е. не просто изменял внешний вид стандартных контролов. Вопрос в том насколько это реально, взять простое окно и наделить его подобными свойствами. По сути контролы нужны со стандартными свойствами, т.е. функциональность такая же, как и у обычных виндовских.
Заценить не смог, т.к. надо региться, а ради одной кнопки влом, в том то и проблема что надо не два контрола типа кнопки, нужны практически все контролы и меню хотелось бы переделать.
Сорцы не видел и поэтому далее просто предположение , которое может быть и не верно, мне кажется что это все таки просто обертывание в класс стандартного контрола button на такие мысли наводит строка – “The BS_OWNERDRAW style is added automatically, you don't need to set the "Owner draw" property in the resource editor.” и описание багов (такая вот мутата и получается, когда на стандартный контрол вешаешь свои фенички в итоге твой добавленный код делает свое а винда продолжает делать свое).
Здравствуйте, sneak, Вы писали:
S>Кто-нибудь делал свои контролы, т.е. не просто изменял внешний вид стандартных контролов. Вопрос в том насколько это реально, взять простое окно и наделить его подобными свойствами. По сути контролы нужны со стандартными свойствами, т.е. функциональность такая же, как и у обычных виндовских.
Делал еще во времена Windows 3.1. Ничего сложного, просто создаешь управляющий элемент пользовательского типа (мордочка в панели контролов), определяешь ему имя класса. До DialogBox этот класс надо зарегистрировать, тем самым определится его оконная функция, в которой делай, что хочешь. У меня этот контрол графики рисовал, на мышку реагировал и много еще что делал. Фактически я просто вставил в диалог свое рабочее окно .
Будешь делать — не забудь про WM_GETDLGCODE, если хочешь, чтобы принимались те или иные WM_KEYDOWN, когда фокус стоит на этом контроле.
Что-то я не понял, что такое –“мордочка в панели контролов”, причем тут диалоговые окна еще и модальные. И еще – “У меня этот контрол графики рисовал, на мышку реагировал и много еще что делал. Фактически я просто вставил в диалог свое рабочее окно.”, почему не сделал простым окном?
В чем отличие простого окна от User Controls который — Implementing an Application-Defined Window Class?
Re: свои контролы
От:
Аноним
Дата:
20.09.05 07:33
Оценка:
Здравствуйте, sneak, Вы писали:
S>Кто-нибудь делал свои контролы, т.е. не просто изменял внешний вид стандартных контролов. Вопрос в том насколько это реально, взять простое окно и наделить его подобными свойствами. По сути контролы нужны со стандартными свойствами, т.е. функциональность такая же, как и у обычных виндовских.
Если найдутся статьи/тюториалы по предмету скиньте в форум — тоже интересно !
Здравствуйте, sneak, Вы писали:
S>Кто-нибудь делал свои контролы, т.е. не просто изменял внешний вид стандартных контролов. Вопрос в том насколько это реально, взять простое окно и наделить его подобными свойствами. По сути контролы нужны со стандартными свойствами, т.е. функциональность такая же, как и у обычных виндовских.
Реально Ничего сложного, даже интересно. Своё дочернее окно (свой оконный класс), со своей процедурой обработчки сообщений — вот и весь контрол. Сам рисуешь, сам обрабатуешь все сообщения.
Здравствуйте, sneak, Вы писали:
S>Что-то я не понял, что такое –“мордочка в панели контролов”,
При создании диалога вставляю User Control. Он в панели инструментов выглядит как мордочка.
>причем тут диалоговые окна еще и модальные.
Пардон, а куда этот контрол ты вставлять собрался ? Контролы обычно в диалог вставляют.
>И еще – “У меня этот контрол графики рисовал, на мышку реагировал и много еще что делал. Фактически я просто вставил в диалог свое рабочее окно.”, почему не сделал простым окном?
А чтобы в диалоге были другие контролы (edit, listbox), которые позволяют настройки для этого User Control менять. Параметры всякие...
S>В чем отличие простого окна от User Controls который — Implementing an Application-Defined Window Class?
В том, что контролы обычно в диалог вставляются. Пока просто окно — еще не контрол, а вставили в другое — уже контрол