Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Изображение на кнопке

Автор: Fanat 7.10.2007 1:39

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

Как в процессе работы можно изменить изображение кнопки,
то есть на рисунок из другого файла?..

Автор: FreeMan 7.10.2007 14:02

делоешь со стилем BS_BITMAP..
когда хочешь сменить битмап, то посылаешь BM_SETIMAGE message.

Автор: Fanat 7.10.2007 14:39

Цитата(FreeMan @ 7.10.2007 11:02) *

делоешь со стилем BS_BITMAP..
когда хочешь сменить битмап, то посылаешь BM_SETIMAGE message.


Можно поподробней...что делать со стилем BS_BITMAP?..Как?..
И кому посылать BM_SETIMAGE message?..

Автор: volvo 7.10.2007 14:43

Цитата
Как в процессе работы можно изменить изображение кнопки
А можно поподробнее - какой кнопки? Кнопки они разные бывают... Бывает TButton, а бывает TBitBtn или TSpeedButton ...

Автор: FreeMan 7.10.2007 14:44

Цитата
If you create a button by specifying the BUTTON class with the CreateWindow or CreateWindowEx function, you can specify a combination of the following button styles.
блаблабла
BS_BITMAP
Specifies that the button displays a bitmap.

Цитата
An application sends a BM_SETIMAGE message to associate a new image (icon or bitmap) with the button.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) BM_SETIMAGE, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) () lParam; );

Parameters
wParam Specifies the type of image to associate with the button. This parameter can be one of the following values:
IMAGE_BITMAP
IMAGE_ICON
lParam Handle to the image to associate with the button.

Return Value
The return value is a handle to the image previously associated with the button, if any; otherwise, it is NULL.

Вотъ
Цитата
Бывает TButton, а бывает TBitBtn или TSpeedButton ...

А они случаем не из обычной кнопке получаюцо?

Автор: volvo 7.10.2007 15:10

Цитата
А они случаем не из обычной кнопке получаюцо?
Получаются может и из обычной, только если у меня TBitBtn, то мне гораздо проще сменить Glyph, чем мудрить с сообщениями (если уж пользоваться VCL - то пользоваться ей везде, а не часть API/часть VCL)...

Кстати, Fanat,
Цитата(Правила Раздела)
2. Точно указывайте язык, название и версию компилятора (интерпретатора).

ты не указал... Может у тебя действительно чистый API в этом задании...

Автор: Fanat 7.10.2007 15:38

Цитата(volvo @ 7.10.2007 12:10) *

Получаются может и из обычной, только если у меня TBitBtn, то мне гораздо проще сменить Glyph, чем мудрить с сообщениями (если уж пользоваться VCL - то пользоваться ей везде, а не часть API/часть VCL)...

Кстати, Fanat,

ты не указал... Может у тебя действительно чистый API в этом задании...


C++ Builder 6. Пользоваться можно чем угодно. Но мне понятнее Glyph.
А как сменить Glyph?

Автор: volvo 7.10.2007 15:51

BitBtn1->Glyph->LoadFromFile(new_file_name);

?

Автор: Fanat 7.10.2007 16:25

Цитата(volvo @ 7.10.2007 12:51) *

BitBtn1->Glyph->LoadFromFile(new_file_name);

?


Работает. Спасибо. smile.gif