Вопрос № 96054: Доброе время суток, уважаемые эксперты. Подскажите вот что. Вверху окно залито по градиенту от более тёмного синего к светлому синему даже голубому. Так вот, какой функцией можно изменить цвет заголовка окна и изменить градиент. Приведите пожалуйста ...Вопрос № 96059: Доброе время суток, уважаемые эксперты. Подскажите ActiveX компоненты относятся к WinAPi. Подскажите литературу пожалуйста, или линки. Можно ли с помощью этих
компонентов пробится на машину. И где они используются...Вопрос № 96172: Имеется загруженный снимок HBITMAP "xxx", нужно создать картинку HBITMAP "ppp" размерами 200х150, поместив в нее уменьшенный снимок "xxx" по горизонтали до 200 Pixel соответственно пропорционально по вертикали. Причем ес...
Вопрос № 96.054
Доброе время суток, уважаемые эксперты. Подскажите вот что. Вверху окно залито по градиенту от более тёмного синего к светлому синему даже голубому. Так вот, какой функцией можно изменить цвет заголовка окна и изменить градиент. Приведите пожалуйста пример.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Александр Михайлович!
Посмотрите эти функции: SetSysColors и GetSysColor, с параметром COLOR_ACTIVECAPTION Область заголовка активного окна.
Выбранный параметр устанавливается для всех окон. Если сменится активное окно, то другое окно будет иметь установленные Вами параметры.
В приложении пример для ТАСМ.
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Доброе время суток, уважаемые эксперты. Подскажите ActiveX компоненты относятся к WinAPi. Подскажите литературу пожалуйста, или линки. Можно ли с помощью этих компонентов пробится на машину. И где они используются
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Александр Михайлович!
Технология ActiveX - открытый стандарт, позволяющий быстро создавать мощные интегрированные приложения и компоненты для Internet/Intranet сетей. ActiveX компоненты представляют собой функционально-законченные модули исполняемого кода, оформленные в виде .exe, .dll или .ocx файлов. Спецификация ActiveX позволяет сократить время на создание приложений за счет многократного использования готовых модулей. ActiveX – бинарный стандарт, это позволяет разрабатывать и использовать объекты в самых различных программных
системах.
Компонент ActiveX представляет собой класс который имеет свои свойства(данные), методы(обрабатывающие эти данные) и события(на которые объект этого класса должен реагировать). Смотрите О О П
WinAPi - это "кирпичики" с помощью которых эти компоненты построенны.
Если на машине отключенн ActiveX(по умолчанию), то пробится на неё нельзя.
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Имеется загруженный снимок HBITMAP "xxx", нужно создать картинку HBITMAP "ppp" размерами 200х150, поместив в нее уменьшенный снимок "xxx" по горизонтали до 200 Pixel соответственно пропорционально по вертикали. Причем если высота уменьшенного снимка меньше 150, то он размещается по центру вертикальной линии. Заведомо известно снимки "xxx" всегда больше 200х150. Подскажите, как лучше всего это реализовать.
Отправлен: 24.07.2007, 07:41
Вопрос задал: Дмитрий Ц. (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Tek
Здравствуйте, Дмитрий Ц.!
Все просто до безобразия:
BITMAP bm; // структура данных о HBITMAP изображении
GetObject(HBITMAP, sizeof(BITMAP), &bm); // получаем данные об изображении
// Вычисляем новую высоту каритинки (в bm - есть высота и ширина исходной)
// определяем координаты прямоугольника ПОЛНОЙ результирующей картинки
CreateBitmap(200, 150, bm.bmPlanes, bm.bmBitsPixel, NULL);
// это создали новый битмап
// потом создаем два контекста, совместимых с рабочим столом
CreateCompatibleDC(NULL); // кстати не забыть их потом удалить
SelectObject(); // в каждый контекст свою картинку
StretchBlt() - копирование картинки с изменением размеров с исходного контекста на результирующий картинке
// Все - на новом битмапе только попавшая в него часть картинки
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: Студент)
Ответ отправлен: 24.07.2007, 08:48 Оценка за ответ: 4 Комментарий оценки: Необходимо также установить режим сжатия для результатирующего контекста SetStretchBltMode(контекст уст., STRETCH_HALFTONE); - иначе снимок получается очень некрасивым.