Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: цвет текстовый & фон евойный  (Прочитано 51237 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vorlon
Гость
« Ответ #30 : 10-10-2003 11:00 » 

Извините что влезаю в вашу беседу, но может подскажите как получить для SetBkColor(hdc,RGB); значение RGB являющееся фоном окна hWnd на которое выводится текст. По умолчанию используется белый Жаль
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #31 : 10-10-2003 11:36 » 

Не совсем понял вопрос. Если речь идёт о default цвете, то он выставляется в настройках для окна и записывается в HKEY_CURRENT_USER\Control Panel\Colors
параметр Window.

Если программно - GetBkColor().

Если хочешь знать знать какой цвет был у фона, то это возвращает SetBkColor.

Или ты хочешь знать как RGB получается?

Уточни вопрос.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Vorlon
Гость
« Ответ #32 : 10-10-2003 12:13 » 

Джон, спасибо, как RGB получается я знаю. Меня GetBkColor() интересовало, ща проверю.
Записан
Vorlon
Гость
« Ответ #33 : 10-10-2003 12:51 » 

Не, не то, после hdc=BeginPaint(hWnd,&ps),
GetBkColor(hdc) возвращает RGB(255,255,255) т.е. белый по умолчанию.
А окно:  WndClass.hbrBackground  = (HBRUSH)(COLOR_WINDOW+0x01);
Как получить значение (COLOR_WINDOW+0x01) в RGB(..,..,..)?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #34 : 10-10-2003 13:09 » 

Ааааа ну так это индекс цвета в винде, а не цвет.

GetSysColor(COLOR_WINDOW)

кстати, ща посмотрел

COLOR_WINDOW = 5

COLOR_WINDOW+1 = 6 = COLOR_WINDOWFRAME

лучше используй COLOR_WINDOWFRAME
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Vorlon
Гость
« Ответ #35 : 10-10-2003 14:09 » 

Джон, получилось!
Вот только в GetSysColor(BgColor),
BgColor должен быть на 1 меньше чем WndClass.hbrBackground
странно  Здесь была моя ладья...
Записан
Vorlon
Гость
« Ответ #36 : 10-10-2003 14:31 » 

Еще одна проблема:
Какое поле структуры LOGFONT, и на что надо изменить, что бы все символы были одной ширины?
Записан
Lex
Специалист

ru
Offline Offline

WWW
« Ответ #37 : 10-10-2003 14:42 » 

lfFaceName  Улыбаюсь

Это тебе надо использовать моноширные шрифты.
Записан

Megabyte be with you!
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #38 : 10-10-2003 14:42 » 

Вообщето это зависит от фонта, посмотри на форуме уже где-то обсуждалось.
Извини пора сваливать, часов через 5 вылезу.
Попробуй вот что:

Цитата: MSDN


lfPitchAndFamily
 
Specifies the pitch and family of the font. The two low-order bits specify the pitch of the font and can be one of the following values.
DEFAULT_PITCH
FIXED_PITCH
VARIABLE_PITCH

Bits 4 through 7 of the member specify the font family and can be one of the following values.

FF_DECORATIVE
FF_DONTCARE
FF_MODERN
FF_ROMAN
FF_SCRIPT
FF_SWISS

The proper value can be obtained by using the Boolean OR operator to join one pitch constant with one family constant.

Font families describe the look of a font in a general way. They are intended for specifying fonts when the exact typeface desired is not available. The values for font families are as follows. Value Meaning
FF_DECORATIVE Novelty fonts. Old English is an example.
FF_DONTCARE Don't care or don't know.
FF_MODERN Fonts with constant stroke width (monospace), with or without serifs. Monospace fonts are usually modern. Pica, Elite, and CourierNew® are examples.
FF_ROMAN Fonts with variable stroke width (proportional) and with serifs. MS® Serif is an example.
FF_SCRIPT Fonts designed to look like handwriting. Script and Cursive are examples.
FF_SWISS Fonts with variable stroke width (proportional) and without serifs. MS® Sans Serif is an example.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Vorlon
Гость
« Ответ #39 : 10-10-2003 16:20 » 

Цитата: Lex
lfFaceName  Улыбаюсь

Это тебе надо использовать моноширные шрифты.


может, ты на этом уже собаку сьел, а я только разбираюсь - что и как. Мог бы по конкретней написать:
lfPitchAndFamily=FF_MODERN и не все шрифты могут быть моноширинными.

Я "Times New Roman" использовал и ничего не выходило.
Но и на этом спасибо, особенно тебе Джон - у меня MSDN отсутствует.
Записан
Anonymous
Гость
« Ответ #40 : 10-10-2003 23:11 » 

Не Times как раз не подходит, да и не экранный это фонт. Из моноширинных Courier-ы.
lfPitchAndFamily=FF_MODERN запись не совсем правильная, тк ты ставишь только биты с 4 по 7

обычно их коибинируют с pitch-ами

lfPitchAndFamily=FIXED_PITCH | FF_MODERN;

и возьми какой нмть Courier они на каждой винде должны быть. К сожалению нет возможности поиграться с какм-нить проектиком. Так что выдаю из головы, могу и напутать.
Записан
Vorlon
Гость
« Ответ #41 : 11-10-2003 06:55 » 

Courier-ы и lfPitchAndFamily=FF_MODERN проверил - все нормально, но добавлю на всякий случай и FIXED_PITCH.
Еще раз благодарю за помощь.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #42 : 15-04-2006 10:32 » 

(комент:)

выжимку - в FAQ
Записан

Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines