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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 15:57   #1
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию Задать цвет фона и шрифта edit в чужом окне

Привет Форумчане!!!
Подскажите пожалуйста, с помощью какой функции API можно задать цвет фона и шрифта edit в чужом окне.
Hendel edit я получаю.
Заранее спасибо!!!

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 21:52.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 16:04   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

WM_SETFONT
и
WM_CTLCOLOREDIT
Соответственно!
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 07.07.2011, 16:09   #3
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Это я знаю

SendMessage(HEdit, WM_CTLCOLOREDIT, а дальше RGB(255, 255, 255) ?
Делаю по разному неработает.

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 16:13.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 16:14   #4
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

SendMessage(HEdit, WM_SETFONT,
//Далее хэндл шрифта, например Edit1.Font.Handle ну или свой TFont создайте
//Четвёртый параметр отвечает за перерисовку окна! 0 - не перерисовывать, иначе - перерисовать!
Пример:
Код:
SendMessage(HEdit, WM_SETFONT, Button1.Font.Handle, 0);
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 07.07.2011, 16:15   #5
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

C WM_SETFONT не удивил.

Это я знаю. Мне нужен цвет!!!!

И вообще это так делается:

Код:
 Font := CreateFont( 22, 22, 0, 0, 1000, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
 CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH or FF_DONTCARE, 'Courier New' );
 SendMessage(HEdit, WM_SETFONT, Font, 0 );
SendMessage(HEdit, WM_CTLCOLOREDIT, а дальше RGB(255, 0, 0) ?
Делаю по разному неработает.

Еще есть функция SetBkColor но тут с hdc edit нужно работать. Разбираюсь и с этой функцией.

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 16:25.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 16:32   #6
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

Хм... Ну да, цвет чё-то не меняется... Но по сути этот параметр отвечает за цвет... Следовательно нужно в компоненте edit переделать процедуру обработки данного сообщения!
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 07.07.2011, 19:32   #7
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Edit разные сообщения мои принимает и шрифт меняется и текст, а вот с цветом никак, но мне бы еще и в других контролах поменять хотя бы цвет шрифта.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 19:44   #8
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

SendMessage(HEdit, WM_CTLCOLOREDIT....... Не работает.

Заработало таким методом только не для редактируемых контролов.

Код:
var
ps: TPaintStruct;
Font: hFont;
rc: TRect;

 Font := CreateFont( 22, 22, 0, 0, 1000, 0, 0, 0,
                    DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
                    CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
                    DEFAULT_PITCH or FF_DONTCARE, 'Courier New' );

//HLabel-Хендэл Label
GetClientRect(HLabel, rc);//получаем положение Label для того что бы текст вывести в правильном положении
 BeginPaint(HLabel, ps); //Начало перерисовки с получением hds
 SelectObject(ps.hdc, Font); //задаем шрифт
  SetTextColor(ps.hdc, $00FF0000);//Цвет текста
  SetBkColor(ps.hdc, $000000FF);//заливка
  DrawText(ps.hdc, PChar(S), Length(S), rc, 0);//Текст
 DeleteObject(Font); 
  EndPaint(HLabel, ps);
А как же можно задать цвет фона и шрифта контролам c которых вводят текст?

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 21:30.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 22:44   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

контролы не обязаны принимать данные извне, они вполне могут работать только внутри.
какой класс окна то хоть? стандартный EDIT?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.07.2011, 23:21   #10
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Созданный мною
Код:
 HEdit:= CreateWindowEx( WS_EX_CLIENTEDGE, 'Edit', '',
                        ES_AUTOHSCROLL or WS_CHILD or WS_VISIBLE,
                        10, 10, 270, 20, H, EditID, hInstance, nil );
Мне нужно его параметры в цвете, фон и цвет шрифта автоматом менять, все в нем меняю а цвет почему то не меняется

Да и на чужих окнах пробовал не выходит цвет задать, вот параметры шрифта и текст меняются, а цвет шрифта и самого контрола не получается

Через BeginPaint меняю но это картинка начинаешь вводить текст он обратно становится изначальным

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 23:32.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TVirtualStringTree в чужом окне. Fairhawk Общие вопросы Delphi 0 27.01.2011 11:54
Как задать для формы произвольный цвет фона, который отличается от установленного по умолчанию на С# phabion Общие вопросы .NET 2 21.04.2010 16:29
Каким образом можно изменять цвет фона и цвет шрифта в Label? jungle Win Api 17 21.09.2009 00:38
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05
Как задать текст в Edit в чужом окне Artem Win Api 6 14.12.2007 19:13