Vorlon
Гость
|
|
« Ответ #30 : 10-10-2003 11:00 » |
|
Извините что влезаю в вашу беседу, но может подскажите как получить для SetBkColor(hdc,RGB); значение RGB являющееся фоном окна hWnd на которое выводится текст. По умолчанию используется белый
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
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(..,..,..)?
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
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
|
|
« Ответ #37 : 10-10-2003 14:42 » |
|
lfFaceName Это тебе надо использовать моноширные шрифты.
|
|
|
Записан
|
Megabyte be with you!
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #38 : 10-10-2003 14:42 » |
|
Вообщето это зависит от фонта, посмотри на форуме уже где-то обсуждалось. Извини пора сваливать, часов через 5 вылезу. Попробуй вот что:
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 » |
|
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. Еще раз благодарю за помощь.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #42 : 15-04-2006 10:32 » |
|
(комент:)
выжимку - в FAQ
|
|
|
Записан
|
|
|
|
|