![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Здравствуйте, вопрос в следующем: как вывести bmp в окно кнопки ? Я что-то запутался совсем.
Не пробовал только Image List создавать. Вот фрагмент кода:
в результате имеем просто серый прямоугльник кнопки без рисунка(( это если указать в BS_ что кнопка содержит рисунок. А если не указывать то отображается текст, указаный в CreateWindow(). Но я то хотел рисунок на фоне и на этом фоне надпись!! И еще 3 вопросика: Если кто знает, то как вывести текст в элементе static с прозрачным фоном? Как прогрузить в edit на фон свой рисунок или сделать его прозрачным? И где бы посмотреть реализацию этих элементов, особенно edit-a а то отношение к нему как "ченому ящику", как пишут в литературе, не сильно устраивает.... Знаю что вопросов много назадавал, но это наверно самые основные для желающих делать свой оригинальный интерфейс. |
|||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 4 Всего: 10 |
1. BS_OWNERDRAW
2. WM_CTLCOLORSTATIC -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Я вообще-то пробовал с BS_OWNERDRAW рисовать но получается хрень какая-то. В верху места отеденного под кнопку отображается полоска черного цвета и все. А битмэпа нету((
На всякий случай привожу пример кода полностью. Дабы не забивать голову областями видимости и жизни пременных все объявлено глобально. Edit пока не трогаем))
|
|||
|
||||
| cvid |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Не трогай Edit, он и есть черный ящик. Использую RichEdit - там и фон поменять можно и шрифт задать покрасивше.
Вместо статика предлагаю рисовать на форме LOGFONT. А по поводу кнопки, попробуй грузить Image List. С битмапами я не пробовал, зато с иконками - даю гарантию. |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Загрузил короче)) листинг правильный был, только рисунок надо было поменять, чтоб отличался от фонового. А то он меня в иллюзию вводил.
Это я по поводу кнопки)), однако: текст который должен был быть выведен исчез, а если убрать BS_OWNERDRAW, то после клика вылазит просто серая кнопка без ничего. Ведет себя как и положено кнопке, нажимается и т.д. НО где ж рисунок и текст?? Мы ж рисовали на WM_PAINT... и кнопка должна перерисовываться.... Или что ж получается, окно создали.. а дальше надо все поведение прописывать жестоко самому??? И WM_PAINT, и WM_CREATE, и WM_RBUTTONDOWN??? И самому выводить текст при каждой перерисовке?? Поправьте если не прав... Про ImageList тут без вариантов, конечно им надо пользоваться, особенно на кнопках, спасибо за дельный совет. BMP просто для примера взят, как конкретный рисунок который надо грузить в элемент управления. Еще хотел спросить как применить етот WM_CTLCOLORSTATIC? Люди давайте с примерами, если вам не в лом Не то что бы тут очень ленивые читать собрались, однако чтивши Румянцева и еще Обучающую среду, качаных тут же на Vingrade я такого сообщения не встретил... Метайте ссылки хотя бы где вы ето брали))) Нашел только wm_CtlColor Дает pодительскому окну или дочеpнему оpгану упpавления возможность изменить цвета фона и текста, котоpыми наpисован дочеpний элемент. Паpаметpы: wParam: Является описателем контекста дисплея для дочеpнего окна. lParamLo: Является описателем дочеpнего окна. lParamHi: Является одной из констант ctlcolor_. Опpеделяет тип дочеpнего окна. Пробовал к стати перехватить оконную процедуру edita, но не благодарное ето занятие. Тогда уж лучше сразу писать свою и заменять все к еп.. матери. Знал бы как реализован edit, давно бы передрал по- своему. Пошел короче предложения пробовать))) |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Установка прозрачного фона выводимого текста: SetBkMode(hDC,TRANSPARENT); Потом можно выводить текст с помощью DrawText или TextOut
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |