Вопрос № 19114: Здраствуйте.
Как можно изменить фон Edit на рисунок?
По умолчанию фон Edit'а белый (понятно как сделать его другим цветом), а хочется чтобы там(на фоне) был рисунок....
Вопрос № 19114
Здраствуйте.
Как можно изменить фон Edit на рисунок?
По умолчанию фон Edit'а белый (понятно как сделать его другим цветом), а хочется чтобы там(на фоне) был рисунок.
Отправлен: 02.04.2005, 14:01
Вопрос задал: Алексей С. (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Gregory
Здравствуйте, Алексей С.!
Например, можно создать обработчик сообщения WM_CTLCOLOR, в котором прописать след. код:
if(nCtlColor == CTLCOLOR_EDIT)
{
return mybrush; // кисть с рисунком (где, например, mybrush = CreatePatternBrush(рис.);)
}
Ответ отправил: Gregory (статус: 1-ый класс)
Отправлен: 03.04.2005, 01:36
Отвечает: dentist
Здравствуйте, Алексей С.!
первое, что приходит в голову, это поставить хук и отловить WM_PAINT
Ответ отправил: dentist (статус: 1-ый класс)
Отправлен: 03.04.2005, 11:06
Отвечает: Raptor1
Здравствуйте, Алексей С.!
1. В h файле добавить объявление кисти для вашего editbox
HBRUSH m_brBg;
2. В обработчике WM_CREATE создать нужный HBRUSH, например так
HBITMAP bm;
bm=::LoadBitmap(hinst,MAKEINTRESOURCE(IDB_BITMAP1));
m_brBg=CreatePatternBrush(bm);
DeleteObject(bm);
3. В обработчике события WM_CTLCOLOREDIT вашего приложения вернуть этот HBRUSH предварительно установив прозрачный режим вывода текста
SetBkMode((HDC)wParam,TRANSPARENT);
return m_brBg;
4. Ну и в заключение не забыть удалить HBRUSH при завершении работы приложения (WM_DESTROY)
DeleteObject(m_brBg)
Ответ отправил: Raptor1 (статус: 2-ой класс)
Отправлен: 03.04.2005, 19:33 Оценка за ответ: 5 Комментарий оценки: Спасибо, всё заработало.