Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.13;
Скачать: CL | DM;

Вниз

Рисование   Найти похожие ветки 

 
Washington ©   (2007-12-13 12:58) [0]

Как можно рисовать на кнопках и панелях?


 
{RASkov} ©   (2007-12-13 13:04) [1]

> [0] Washington ©   (13.12.07 12:58)

Вообщето не сложно, но зачем?????
Больше рисовать негде?


 
{RASkov} ©   (2007-12-13 13:05) [2]

> [0] Washington ©   (13.12.07 12:58)

TCanvasControl + F1


 
Washington ©   (2007-12-13 13:16) [3]

Ну насчёт канваса я знаю, создал, нарисовал, результат - фигня какая-то.

DC:=GetDC(OK_Button.Handle);
BtnCan := TCanvas.Create;
BtnCan.Handle := DC;
with BtnCan do
...
end;

Когда запускаю прогу, кнопка выглядит как обычно. Если к примеру нажать какую-нить другую кнопку, то данная прорисовывается так как надо.


 
Washington ©   (2007-12-13 13:18) [4]

Можно ли вручную прорисовать Glyph?


 
{RASkov} ©   (2007-12-13 13:23) [5]

> [3] Washington ©   (13.12.07 13:16)
> Если к примеру нажать какую-нить другую кнопку, то данная
> прорисовывается так как надо

А как ты думаешь вообще в Виндовс происходит прорисовка? И для чего в ней есть такие сообщения, как, например, - WM_PAINT?
Отсюда вывод, перерисовывать своё художество необходимо в специально определенный для этого момент....


 
{RASkov} ©   (2007-12-13 13:27) [6]

> Washington ©

А вот теперь задумайся и реши, что же тебе все-таки необходимо в первую очередь: (Кнопочка и ее ОнКлик) или (Кнопочка и Рисунок на ней)....
Так вот это все можно реализовать на TPaintBox... OnClick легче сюда прикрутить, чем рисование на TButton....
ЗЫ Есть еще и TBitBtn....?


 
{RASkov} ©   (2007-12-13 13:36) [7]

> [4] Washington ©   (13.12.07 13:18)
> Можно ли вручную прорисовать Glyph?

Ты как раз и привел пример ручного рисования на кнопке в [3]
:)
А вот для автоматической прорисовки все это дело(код не полный, но думаю у тебя есть и освобождение ресурсов...)
нужно "повесить" на сообщение WM_PAINT для контрола, который необходимо перерисовать....


 
Washington ©   (2007-12-13 14:08) [8]

То есть проще поместить Image, а при клике на нём показать Image нажатой кнопки?


 
{RASkov} ©   (2007-12-13 14:19) [9]

> [8] Washington ©   (13.12.07 14:08)
> То есть проще поместить Image, а при клике на нём показать
> Image нажатой кнопки?

Можно Имаге.... можно, еще раз, TPaintBox - который "сам ловит"(впрочем как и Имагес) сообщения для перерисовки(См OnPaint) и в отличии от TImage - не хранит рисунок в памяти, (т.е. "экономный") а перерисовывает его при необходимости....
"Рисунок" кнопки делается одним вызовом функции DrawControl(или как-то так, сейчас сразу и не вспомню) или DrawEdge(тоже примерно так, я про названия:) Делфи нет под рукой), там с разными параметрами можно рисовать либо нажатое либо отжатое состояние...

ЗЫ Есть свои плюсы и у TImage и TPaintBox, так же как и минусы....


 
{RASkov} ©   (2007-12-13 14:34) [10]

> "Рисунок" кнопки делается одним вызовом функции DrawControl

http://www.firststeps.ru/mfc/steps/help/r.php?763


 
Washington ©   (2007-12-14 10:55) [11]

Спасибо большое за помощь



Страницы: 1 вся ветка

Текущий архив: 2008.01.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
15-1196956916
Германн
2007-12-06 19:01
2008.01.13
И что это было?


9-1165444400
EkZot
2006-12-07 01:33
2008.01.13
Вращения гланого героя вокруг своей оси.


2-1197568658
San1712
2007-12-13 20:57
2008.01.13
Как изменить один бит в байте ?


4-1182193034
Дмитрий Белькевич
2007-06-18 22:57
2008.01.13
Сообщение при подключении к удаленной сессии


2-1197838272
malyar
2007-12-16 23:51
2008.01.13
Tmemo номер строки который всегда прав