Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 398
от 07.03.2007, 21:13

Администратор:Калашников О.А.
В рассылке:Подписчиков: 409, Экспертов: 22
В номере:Вопросов: 4, Ответов: 6


Вопрос № 76998: Вобщем вопрос в следущем: каким образом создается тень... например у значков... или для примера тень у Сплэш-экpана при открытии Photoshop CS2. Зранее спасибо!!...
Вопрос № 77050: Доброе время суток, эксперты. Подскажите какой функцией заливается заголовок окна (по умолчанию он градиентом от синего к голубому). Как залить так градиентом своё окно. И реально ли изменить шрифт в заголовке использовать не стандартный или свой. Сп...
Вопрос № 77052: Доброе время суток, эксперты. Подскажите как создать кнопку нестандратной формы, ну к примеру в виде звёздочки. Спасибо....
Вопрос № 77305: Подскажите плиз можно ли только Win APi Функциями узанть контекст HDC устройства .... Сейчас чтобы его узнать мне приходится использовать MFC Но пишу длл и использовать там MFC не хочу. Спасибо....

Вопрос № 76.998
Вобщем вопрос в следущем:
каким образом создается тень... например у значков... или для примера тень у Сплэш-экpана при открытии Photoshop CS2.
Зранее спасибо!!
Отправлен: 27.02.2007, 16:12
Вопрос задал: Gwest (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Sergey A. Wedensky
Здравствуйте, Gwest!

Тень у значков - это альфа-канал. Она может присутствовать только у значков 32-битного формата (24 бита на точку - цвет, 8 бит - прозрачность). Она не формируется из формы значка, а присутствует там изначально, т.е. вокруг (ну или справа снизу) на изображении значка темные пикселы, а альфа-канал имеет непрозрачные значения на пикселах основного изображения, а на области тени плавно перетекает в прозрачные. Надо заметить, отображать такие значки умеет винда начиная с XP (или 2000?). Многие редакторы иконок, поддерживающие XP формат умеют формировать тень автоматически.

Тень окну добавляется классовым стилем CS_DROPSHADOW (опять же, поддерживается в последних версиях Win).
Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 01.03.2007, 11:07
Оценка за ответ: 5
Комментарий оценки:
сенк


Вопрос № 77.050
Доброе время суток, эксперты. Подскажите какой функцией заливается заголовок окна (по умолчанию он градиентом от синего к голубому). Как залить так градиентом своё окно. И реально ли изменить шрифт в заголовке использовать не стандартный или свой. Спасибо.
Отправлен: 27.02.2007, 21:45
Вопрос задал: Александр Михайлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Tek
Здравствуйте, Александр Михайлович!
Градиентная заливка замкнутой области: GradientFill() библиотеки GDI
Для рисования в заголовке окна обрабатывайте сообщение WM_NCPAINT.
В общем все сообщения неклиентской части окна (заголовок и границы) начинаются на WM_NC<...>, наример WM_NCERASEBKGND - затирание фона.
Кроме того можно искусственно имитировать заголовок на окне без заголовка.
Ну и другие варианты.
Соответсвенно вы можете не только заливать заголовок, но и писать на нем любым шрифтом, какой создадите CreateFont.
---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: Студент)
Ответ отправлен: 28.02.2007, 09:13


Вопрос № 77.052
Доброе время суток, эксперты. Подскажите как создать кнопку нестандратной формы, ну к примеру в виде звёздочки. Спасибо.
Отправлен: 27.02.2007, 21:52
Вопрос задал: Александр Михайлович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Korolyov Alexandr
Здравствуйте, Александр Михайлович!
Есть такой вариант: можно использовать картинку (bmp) и обрабатывать сообщения происходящие на ней, только еще потребуется несколько вариантов изображений (нажатая кнопка, отжатая).
Так в Оффисе 97 был сделан ряд кнопок.
---------
Читайте help
Ответ отправил: Korolyov Alexandr (статус: 2-ой класс)
Ответ отправлен: 28.02.2007, 13:40


Вопрос № 77.305
Подскажите плиз можно ли только Win APi Функциями узанть контекст HDC устройства .... Сейчас чтобы его узнать мне приходится использовать MFC Но пишу длл и использовать там MFC не хочу.
Спасибо.
Отправлен: 01.03.2007, 13:20
Вопрос задала: Annuta (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Григорьеа Владимир Дмитриевич
Здравствуйте, Annuta!
Используйте функцию
HDC GetDC(

HWND hWnd // handle of window
);

ещё посмотрите функции GetDCEx и GetWindowDC
Ответ отправил: Григорьеа Владимир Дмитриевич (статус: 2-ой класс)
Ответ отправлен: 01.03.2007, 13:30
Оценка за ответ: 3
Комментарий оценки:
Владимир, а вы не занете, как мне поменять функцию
CPaintDC dc(this); // device context for painting
на Win Api ???

Отвечает: Mitya86
Здравствуйте, Annuta!

так не используй mfc, пользуйся функцией GetDC, она вернет тебе указатель на контекст устройства и не требует мфс
Ответ отправил: Mitya86 (статус: 3-ий класс)
Ответ отправлен: 01.03.2007, 17:33

Отвечает: Korolyov Alexandr
Здравствуйте, Annuta!
Можно так: GetDC (hwnd: HWND);
где hwnd - это хэндел окна, контекст которого нужно получить
---------
Читайте help
Ответ отправил: Korolyov Alexandr (статус: 2-ой класс)
Ответ отправлен: 01.03.2007, 18:49


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное