Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2013, 23:14   #1
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
Восклицание Стиль текста

Есть проблема с текстом - в области создаваемого текста серый цвет, как его убрать?
hvz- вне форума Ответить с цитированием
Старый 12.04.2013, 07:27   #2
stabud
Пользователь
 
Регистрация: 28.03.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от hvz- Посмотреть сообщение
Есть проблема с текстом - в области создаваемого текста серый цвет, как его убрать?
Покрасить фон контрола нужным цветом. Тут смотря какой вы контрол используете:

если EDIT ,то ловить сообщение WM_CTLCOLOREDIT
если STATIC ,то ловить сообщение WM_CTLCOLORSTATIC

В этом сообщении:
  • Создаете кисть с заданным цветом с помощью CreateSolidBrush
  • Красите фон с помощью SetBkColor заданным цветом
  • Возвращаете кисть

Так же можно красить фон с помощью SetBkMode:

Что-то типа примера:

Код:
    		Dim As HBRUSH hBrush= CreateSolidBrush(GetSysColor(COLOR_3DFACE))
    		SetBkMode(Cast(HDC,WPARAM),TRANSPARENT)
    		Return hBrush
При этом цвет фона окна-родителя должен быть равен GetSysColor(COLOR_3DFACE)

Последний раз редактировалось stabud; 12.04.2013 в 07:46.
stabud вне форума Ответить с цитированием
Старый 15.04.2013, 08:10   #3
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Цитата:
Сообщение от stabud Посмотреть сообщение
Покрасить фон контрола нужным цветом. Тут смотря какой вы контрол используете:

если EDIT ,то ловить сообщение WM_CTLCOLOREDIT
если STATIC ,то ловить сообщение WM_CTLCOLORSTATIC

В этом сообщении:
  • Создаете кисть с заданным цветом с помощью CreateSolidBrush
  • Красите фон с помощью SetBkColor заданным цветом
  • Возвращаете кисть

Так же можно красить фон с помощью SetBkMode:

Что-то типа примера:

Код:
    		Dim As HBRUSH hBrush= CreateSolidBrush(GetSysColor(COLOR_3DFACE))
    		SetBkMode(Cast(HDC,WPARAM),TRANSPARENT)
    		Return hBrush
При этом цвет фона окна-родителя должен быть равен GetSysColor(COLOR_3DFACE)
Благодарю за ответ, но после его прочтения что то даже не захотелось ввязываться в это) Т.к. после потраченных нервов на один только дизайн уже боюсь что ли бо дополнять/изменять))
hvz- вне форума Ответить с цитированием
Старый 19.05.2013, 23:50   #4
hvz-
Форумчанин
 
Регистрация: 14.11.2010
Сообщений: 138
По умолчанию

Апаю тему, так как не смог разобраться как же поменять цвет контрола в белый. Заметил одну интересную закономерность: если в процедуре окна "ловить" WM_CTLCOLORSTATIC, при этом ничего не делая(просто поставить break в case) - то моё окошко для картинки становится белым, как и главное окно. Если же закомментировать "уловку" - цвет этого окошка становится серым как и остальной текст.
Вот само создаваемое для картинки окно:
Код:
		// Окно для картинки
		hImg = CreateWindow(WC_STATIC,
							NULL,
							WS_CHILD | WS_BORDER | WS_VISIBLE,
							10, 
							10,
							220, // Ширина
							80, // Высота
							hWnd,
							(HMENU)NULL,
							GetModuleHandle(NULL),
							NULL);
Но цвет фона текстовых контролов почему то не меняется всё равно. Все контролы текста выполнены в таком виде:
Код:
hText = CreateWindow(TEXT("static"), 
buf, 
WS_OVERLAPPED | WS_CHILD | WS_VISIBLE, 
8, 
25, 
182, 
27, 
hTab, 
(HMENU)NULL, 
GetModuleHandle(NULL), 
NULL);
SendMessage(hProcNameText, WM_SETFONT, (WPARAM)hFont, TRUE);
Как можно одним выстрелом поменять фоновый цвет всех текстовых контролов?
hvz- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[VBA] Изменить стиль выделенного текста VadosKuru Помощь студентам 0 30.10.2012 18:59
Стиль Poma][a Паскаль, Turbo Pascal, PascalABC.NET 27 22.10.2012 21:42
Как сделать особый стиль для части текста delphyok Общие вопросы Delphi 6 26.06.2012 21:34
Стиль текста MyLastHit Общие вопросы Delphi 4 02.12.2010 14:22