Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
2-1197373127
@!!ex
2007-12-11 14:38
2008.01.13
Фиксация углов куба.


2-1197643683
Sallity
2007-12-14 17:48
2008.01.13
Задача про машини


2-1197638738
сосед
2007-12-14 16:25
2008.01.13
Разложить стиль окна


15-1196913688
Slider007
2007-12-06 07:01
2008.01.13
С днем рождения ! 6 декабря 2007 четверг


15-1197065246
Lip
2007-12-08 01:07
2008.01.13
Не могу отправить почту на yandex.ru через thebat





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский