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

RusFAQ.ru: Win API


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 534
от 06.06.2008, 02:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 359, Экспертов: 27
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 138832: В разных источниках как пример увидел при регистрации класса окна запись в структуру типа WNDCLASS: WNDCLASS ws; ... ws.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); ... Так вот зачем еденицу-то прибавляют? Ведь не просто так аж в ...

Вопрос № 138.832
В разных источниках как пример увидел при регистрации класса окна запись в структуру типа WNDCLASS:
WNDCLASS ws;
...
ws.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
...

Так вот зачем еденицу-то прибавляют? Ведь не просто так аж в 2-х разных книжках написали.
Отправлен: 31.05.2008, 22:32
Вопрос задал: effort (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Denisss

Здравствуйте, effort!

Потому, что так придумали разработчики Microsoft...
В MSDN написано так: "A color value must be one of the following standard system colors (the value 1 must be added to the chosen color)..." (Значение цвета должно соответствовать одному из следующих стандартных системных цветов (необходимо добавлять единицу к выбранному значению цвета)...).

Насколько я понимаю, сделано это было потому, что COLOR_SCROLLBAR объявлен равным нулю (см. winuser.h), а чтобы не путать (HBRUSH)COLOR_SCROLLBAR c NULL_HBRUSH, то Microsoft придумали прибавлять 1 (т.е. чтобы не было нуля).

Дополнительно: ссылка (на англ.)

Успехов!
---------
Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...
Ответ отправил: Denisss (статус: Профессор)
Россия, Москва
ICQ: 281599577
----
Ответ отправлен: 31.05.2008, 23:20
Оценка за ответ: 5
Комментарий оценки:
"must be added" - ключевая фраза, а why (почему) - уже не важно, всё равно ядро закрыто и дела до этого быть не должно - такова реализация АПИ ВИН32...

Отвечает: DrakoN
!!!
Здравствуйте, effort!
1)ссылка

2) заметьте в С++ эта единичка не добавляеться.

3) Попытаюсь предположить что причина в разнице в работе с массивами. (не) Поддержке 0 - го элемента в разных типах массивов. Т.е. массив имеет поле имеющее значение 0, но не имеет 0 - го элемента. В С# возникает трудность т.к. идет попітка получить 0 - й элемен(которого может не быть)т. Для этого и добавляют еденицу...
4) Вероятнее всего я ошибаюсь но могу сказать вам точно, что ответ лежит в системных С++ библиотеках

В соответствии со статьей в MSDN (WNDCLASS Structure) единицу нужно прибавлять независимо от языка програ ммирования (Visual Basic, C++, C#, J#, JScript, ...)
-----
∙ Отредактировал: Denisss (Профессор)
∙ Дата редактирования: 01.06.2008, 14:22 (MCK)

---------
От Винта!
Ответ отправил: DrakoN (статус: Студент)
Ответ отправлен: 31.05.2008, 23:23
Оценка за ответ: 2
Комментарий оценки:
не хотел ставить ничего, но настолько чушь вы ответили, что всё-таки поставил


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.92 pre 5.0 RC2 от 09.05.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное