Вопрос № 50541: Добрый вечер, уважаемые эксперты!
Меня очень интересует вопрос создания своего собственного control'a (типа Button) с нуля. То есть создание его логики и графической части. В целом интересен данный вопрос. В Интернете не смог найти ни одной стать...
Вопрос № 50.541
Добрый вечер, уважаемые эксперты!
Меня очень интересует вопрос создания своего собственного control'a (типа Button) с нуля. То есть создание его логики и графической части. В целом интересен данный вопрос. В Интернете не смог найти ни одной статьи на данную тему полностью раскрывающюю создание контрола с нуля.
Помогли найти информацию в MSDN. Ее прочитал, но там нет цельного примера. Поэтому и обращаюсь к Вам.
Если Вам несложно, то не могли бы подсказать: 1) Что еще почитать на данную тему? 2) И очень хорошо бы было увидеть пример простого контрола (в котором были бы несколько событий типа OnClick() и OnMouseHover()).
Отвечает: Пёс
Здравствуйте, Коллеганов Михаил Михайлович / ShumiArrow!
вот простейший пример создания кнопки с рисунком на ней, в примере предпологается, что
у тебя уже создано родительское окно, hwnd которого в примере wndMain, есть переменная icon : HICON;
80; константа const Btn0=101;(только для удобства)
//создаем саму кнопку
btnwnd:=CreateWindowEx(WS_EX_STATICEDGE,'button',nil,BS_ICON or WS_VISIBLE or WS_CHILD,10,10,40,40,wndMain,Btn0,hInstance,nil);
//получаем описатель одной из стандартных пиктограмм
Icon:=LoadIcon(0,IDI_APPLICATION);
//вставляем пиктограмму в кнопку
sendMessage(btnwnd,bm_setimage,2,icon);
в приложении смотри функцию обработки сообщений, впринципе все ясно.
добавлю только для разьяснения, что идентефикатор нажатой кнопки передается в младшей
части wparam'а (loWord(wParam))
Приложение:
--------- Пока бежал, он умудрился прописать дырочку в снегу...
Ответ отправил: Пёс (статус: 2-ой класс)
Ответ отправлен: 30.07.2006, 09:42 Оценка за ответ: 3