1. Если в палитре 256 цветов, то для хранения одного пикселя требуется log(2)256 = 8 бит (2^8 = 256). 16 Кбайт = 16*1024 байт = 16*1024*8 бит. Количество пикселей рисунка = 16*1024*8 / 8 = 16*1024
Размеры рисунка = (4*32)*(4*32) = 128*128
2. 1/16 Мбайт = 1024/16 Кбайт = 64 Кбайт = 64*1024 байт = 64*1024*8 бит. Память, занимаемая одним пикселем, = 64*1024*8 / (256*512) = 4 бита. Количество цветов в палитре = 2^4 = 16
3. 1/128 Гб = 1024/128 Мб = 8 Мб = 2^3 Мбайт = 2^3*2^10 Кбайт =
2^3*2^10*2^10 байт = 2^23 байт
819200 бит = 819200/8 байт = 102400 байт = 102400/1024 Кбайт =
100 Кбайт = 4*25 Кбайт = 2^2*25 Кбайт
1) в 1 кбайте= 1024 байта
в 1 мбайте=1024 кбайта
1 гигобайте=1024 мбайта.
83531можна так а можна просто перевернути
Курсор мыши
В отличие от текстового курсора курсор мыши можно
перемещать не только с помощью специальных функций, но и вручную (было
бы странно, если курсор мыши нельзя было бы перемещать вручную) .
Вы
также можете изменять форму курсора мыши. Можно определить форму
курсора (или, иными словами, определить курсор) при регистрации класса
окна или изменить ее в любое время в процессе работы приложения.
При регистрации класса окна мы задавали форму курсора следующим способом:
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
Второй
параметр функции LoadCursor в нашем случае выбирает одну из
предопределенных форм курсора, а именно стандартный курсор в виде
стрелки. Возможные значения для выбора предопределенных форм курсора
представлены ниже.
Символическое имяОписание
IDC_ARROWСтандартный курсор в виде стрелки
IDC_CROSSКурсор в виде перекрещивающихся линий
IDC_IBEAMТекстовый курсор в виде буквы "I"
IDC_ICONПустая пиктограмма
IDC_SIZEКурсор в виде четырех стрелок, указывающих в разных направлениях
IDC_SIZENESWДвойная стрелка, указывающая в северо-восточном и юго-западном направлении
IDC_SIZENSДвойная стрелка, указывающая в севером и южном направлении
IDC_SIZENWSEДвойная стрелка, указывающая в северо-западном и юго-восточном направлении
IDC_SIZEWEДвойная стрелка, указывающая в восточном и западном направлении
IDC_UPARROWВертикальная стрелка
IDC_WAITКурсор в виде песочных часов
Вы можете попробовать изменить курсор в любом из уже рассмотренных нами ранее приложений, создающих окна.
Забегая
вперед, скажем, что вы можете создать курсор произвольной формы с
помощью такого средства, как Borland Resource Workshop или Microsoft
SDK. В этом случае вы должны нарисовать курсор в виде небольшой
картинки, состоящей из отдельных точек. Эта картинка создается
специальным графическим редактором и сохраняется в файле с расширением
.cur. Затем файл подключается к ресурсам приложения, которые
записываются в исполняемый exe-файл. Каждый ресурс в файле имеет свой
идентификатор. Вы можете изменить форму курсора, если укажете
идентификатор ресурса, соответствующего новому изображению курсора.
Для
того чтобы можно было изменить форму курсора, прежде всего надо
загрузить новый курсор при помощи функции LoadCursor, которая входит в
программный интерфейс Windows:
HCURSOR WINAPI LoadCursor(HINSTANCE hinst,
LPCSTR lpszCursor);
Для
загрузки нового курсора из ресурсов приложения в качестве первого
параметра (hinst) необходимо указать идентификатор приложения,
полученный через параметры функции WinMain. Второй параметр (lpszCursor)
при этом должен указывать на идентификатор ресурса. Подробнее об
использовании ресурсов мы поговорим позже в отдельной главе.
Если
же в качестве первого параметра указать значение NULL, для загрузки
курсора можно использовать перечисленные выше символические имена с
префиксом IDC_. Именно так мы и поступаем при регистрации класса окна:
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
Функция LoadCursor возвращает идентификатор загруженного курсора или NULL при ошибке.
Для динамического изменения формы курсора (например, во время обработки сообщения) следует использовать функцию SetCursor:
HCURSOR WINAPI SetCursor(HCURSOR hcur);
Параметр
hcur функции SetCursor должен указывать идентификатор нового курсора,
подготовленный при помощи функции LoadCursor. Если указать параметр как
NULL, изображение курсора исчезнет с экрана.