Страница 1 из 1

Добавлено: 25 Октябрь 2004, 10:33
StillZero
Здравствуйте.

Как изменить цвет background-а entry-контрола посредством API ?

Спасибо.
Написал: PAA(27)

Добавлено: 25 Октябрь 2004, 19:49
Aragorn
посредством API
А нафиг?!
Написал: Aragorn(147)

Добавлено: 26 Октябрь 2004, 2:15
StillZero
А нафиг?!
надо, братишка, надо внатуре :) если палучится расскажу :)
Написал: PAA(27)

Добавлено: 27 Октябрь 2004, 7:03
StillZero
Здравствуйте всем.
Как изменить цвет background-а entry-контрола посредством API ?
А нафиг?!
Было желание сделать флэт entry и text box контролы, также как это реализованно в C6. Мне было предложено убирать галку 3D look с окна и играться с обоями окна и цветами контрола - этот вариант не устраивал.

Так как контролы у клары свои собственные...то...приходится идти в обход. Путем некоторых экспериментов выяснилось что можно поставить конролу атрибут TRANSPARENT, потом выставить стиль WS_BORDER, а потом оставалось только нарисовать белый (определенного цвета) BACKGROUND, поэтому и возник такой вопрос.

Как нарисовать background:
1. Необходимо засабклассить контрол.
2. Отлавливать событие WM_ERASEBKGND
3. В этом событии рисовать прямоугольник

Код процедуры сабклассинга:
WM_ERASEBKGND EQUATE(0014h)
loc:RECT GROUP(xflatRECT).
code
case winMsg
of WM_ERASEBKGND
hBrush#=xflatCreateSolidBrush(COLOR:WHITE)
xflatGetClientRect(hWnd,address(loc:RECT))
xflatFillRect(wParam,address(loc:RECT),hBrush#)
xflatDeleteObject(hBrush#)
end
RETURN(xflatCallWindowProc(GLO:ReturnAddr,hWnd,winMsg,wParam,lParam))

все.
Написал: PAA(27)

Добавлено: 27 Октябрь 2004, 13:21
Aragorn
А где то место, где надо подменять класс? И чей именно? поподробнее кусочек, плз...
Написал: Aragorn(147)

Добавлено: 28 Октябрь 2004, 2:13
StillZero
2Aragorn:
Судя по вопросу :) подробнее не могу наверное...долго...
надо читать ... например http://www.pisoft.ru/verstak/Insider/col_subclass.htm там еще есть статьи, думаю разберешься, удачи тебе и респект переводчику
Написал: PAA(27)