|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - Кнопка + Рисунок/Иконка |
|
Win32 API - Кнопка + Рисунок/Иконка
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать Приветствую всех еще раз. Подскажите как средствами WinAPI загрузить из ресурса приложения в кнопку битмап или иконку. Вроде что надо использовать функции LoadIcon или LoadBitmap. А вот как их использовать? Примеров как всегда куча, а чтобы "на показ" исходники с компилированным файлом - нет. Интересует использование функции SendMessage при таких параметрах. Сделайте кто-нибудь простецкий пример и приаттачьте.
|
|
Отправлено: 15:54, 17-07-2007 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Цитата Maksim V:
LoadImage function BM_SETIMAGE message |
|
------- Отправлено: 01:01, 18-07-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 01:12, 18-07-2007 | #3 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Maksim V
Сам не проверял,но походу делатся должно следующим образом. Ресурс тогда должен объявлятся примерно так: Функцией LoadImage мы загружаем картинку, получая её описатель.Потом отправляем уже созданной кнопке сообщение BM_SETIMAGE.Происходить это должно скорее всего в главной оконной процедуре(если главное окно приложения вообще существует) при получении сообщения WM_PAINT. Что-то в этом роде. |
------- Отправлено: 01:51, 18-07-2007 | #4 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать эээ... я уже ничего не соображаю, но состряпал архивчик с ресурсами. посмотрите пожалуйста и подправьте. тем более я наверное там уже и код попутал, потому что компилятор ругается на неизвестные переменные. хз что и куда...
|
|
Отправлено: 03:01, 18-07-2007 | #5 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Maksim V
Дельфийский компилятор выдаёт две ошибки: 1. Компилятор Дельфи,как это ни странно,не знает такого типа как HANDLE.Просто меняешь его на HWND, DWORD или Cardinal.Это походу всё одно и то же. 2. Неизвестная переменная hBtn. Дык,правильно.Я привёл её чисто для примера,расчитывая на то,что ты в состоянии добыть самостоятельно описатель кнопки.Это можно сделать с помощью функции FindWindowEx. Попробовал сам сделать пример.Отправлять сообщение BM_SETIMAGE необходимо во время обработки WM_INITDIALOG.Но у меня почему-то не получается сделать так,чтобы на кнопке отображались и картинка,и текст одновременно.По отдельности работает,а вместе никак. |
------- Отправлено: 21:29, 18-07-2007 | #6 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Я совсем запутался с этим WinAPI. Приаттачьте пожалуйста архивчик, когда вы переделали мой пример, если вас не затруднит.
|
Отправлено: 00:21, 19-07-2007 | #7 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Maksim V
В общем,примерно так.Но есть одно НО...даже два. Как вы создаёте файл ресурсов??Дело в том,что функция LoadImage должна в качестве второго параметра получать указатель на название ресурса(bitmap в нашем случае).В нашем случае bitmap явно не назывался "MY_BITMAP",а назывался он просто идентификатором 101.Поэтому функция не могла загрузить ресурс.С помощью программы ResHack я поменял название bitmap'а. Теперь скомпилированный файл вроде работает. Второе НО заключается в том,что существуют походу некоторые трудности с одновременным выводом на кнопку и картинки,и текста.Если делать это средствами WinAPI,то это не так-то просто.Если я неправ,пусть меня поправят.А пока мы имеем только кнопку с картинкой. |
------- Отправлено: 03:20, 19-07-2007 | #8 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Юлагодарю. Просто я не указывал PChar(<ресурс>) и из-за этого картинка не грузилась в кнопку. Хммм... А мне интересно а в WinXP кнопка с картинкой отображаться должна с классическим стилем оформления или с манифестом? И как тогда добиться стиля flat? То есть интересует такой стиль, когда рамок кнопки (как бы сливается с диалогом) не видно и очертания кнопки показываются когда наводишь курсор на кнопку. Такое хотя бы возможно?
|
Отправлено: 23:40, 19-07-2007 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Ошибка - [решено] фоновый рисунок | oleg1967 | Microsoft Windows 2000/XP | 3 | 04-12-2008 10:04 | |
[решено] html рисунок | dima1981 | Вебмастеру | 2 | 09-05-2008 21:59 | |
Одинаковый рисунок на рабочий стол | zmaximka | Microsoft Windows NT/2000/2003 | 1 | 06-03-2007 02:57 | |
Фоновый рисунок | kda12 | Microsoft Windows NT/2000/2003 | 6 | 06-02-2007 11:53 | |
Как достать рисунок | badze | Хочу все знать | 3 | 26-02-2004 18:26 |
|