Кнопка + Рисунок/Иконка
Приветствую всех еще раз. Подскажите как средствами WinAPI загрузить из ресурса приложения в кнопку битмап или иконку. Вроде что надо использовать функции LoadIcon или LoadBitmap. А вот как их использовать? Примеров как всегда куча, а чтобы "на показ" исходники с компилированным файлом - нет. Интересует использование функции SendMessage при таких параметрах. Сделайте кто-нибудь простецкий пример и приаттачьте.
|
Цитата:
LoadImage function BM_SETIMAGE message |
Цитата:
|
Maksim V
Сам не проверял,но походу делатся должно следующим образом. Ресурс тогда должен объявлятся примерно так: Код:
MyBitmap BITMAP MyBitmap.bmp Код:
var |
Вложений: 1
эээ... я уже ничего не соображаю, но состряпал архивчик с ресурсами. посмотрите пожалуйста и подправьте. тем более я наверное там уже и код попутал, потому что компилятор ругается на неизвестные переменные. хз что и куда... :)
|
Maksim V
Дельфийский компилятор выдаёт две ошибки: 1. Компилятор Дельфи,как это ни странно,не знает такого типа как HANDLE.Просто меняешь его на HWND, DWORD или Cardinal.Это походу всё одно и то же. 2. Неизвестная переменная hBtn. Дык,правильно.Я привёл её чисто для примера,расчитывая на то,что ты в состоянии добыть самостоятельно описатель кнопки.Это можно сделать с помощью функции FindWindowEx. Попробовал сам сделать пример.Отправлять сообщение BM_SETIMAGE необходимо во время обработки WM_INITDIALOG.Но у меня почему-то не получается сделать так,чтобы на кнопке отображались и картинка,и текст одновременно.По отдельности работает,а вместе никак. |
Я совсем запутался с этим WinAPI. Приаттачьте пожалуйста архивчик, когда вы переделали мой пример, если вас не затруднит. :)
|
Вложений: 1
Maksim V
В общем,примерно так.Но есть одно НО...даже два. Как вы создаёте файл ресурсов??Дело в том,что функция LoadImage должна в качестве второго параметра получать указатель на название ресурса(bitmap в нашем случае).В нашем случае bitmap явно не назывался "MY_BITMAP",а назывался он просто идентификатором 101.Поэтому функция не могла загрузить ресурс.С помощью программы ResHack я поменял название bitmap'а. Теперь скомпилированный файл вроде работает. Второе НО заключается в том,что существуют походу некоторые трудности с одновременным выводом на кнопку и картинки,и текста.Если делать это средствами WinAPI,то это не так-то просто.Если я неправ,пусть меня поправят.А пока мы имеем только кнопку с картинкой. |
Юлагодарю. Просто я не указывал PChar(<ресурс>) и из-за этого картинка не грузилась в кнопку. Хммм... А мне интересно а в WinXP кнопка с картинкой отображаться должна с классическим стилем оформления или с манифестом? И как тогда добиться стиля flat? То есть интересует такой стиль, когда рамок кнопки (как бы сливается с диалогом) не видно и очертания кнопки показываются когда наводишь курсор на кнопку. Такое хотя бы возможно?
|
Время: 15:41. |
Время: 15:41.
© OSzone.net 2001-