В отличие от текстового курсора курсор мыши можноперемещать не только с помощью специальных функций, но и вручную (былобы странно, если курсор мыши нельзя было бы перемещать вручную) .
Вытакже можете изменять форму курсора мыши. Можно определить формукурсора (или, иными словами, определить курсор) при регистрации классаокна или изменить ее в любое время в процессе работы приложения.
При регистрации класса окна мы задавали форму курсора следующим способом:
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 или MicrosoftSDK. В этом случае вы должны нарисовать курсор в виде небольшойкартинки, состоящей из отдельных точек. Эта картинка создаетсяспециальным графическим редактором и сохраняется в файле с расширением.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, изображение курсора исчезнет с экрана.
Answers & Comments
В отличие от текстового курсора курсор мыши можноперемещать не только с помощью специальных функций, но и вручную (былобы странно, если курсор мыши нельзя было бы перемещать вручную) .
Вытакже можете изменять форму курсора мыши. Можно определить формукурсора (или, иными словами, определить курсор) при регистрации классаокна или изменить ее в любое время в процессе работы приложения.
При регистрации класса окна мы задавали форму курсора следующим способом:
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 или MicrosoftSDK. В этом случае вы должны нарисовать курсор в виде небольшойкартинки, состоящей из отдельных точек. Эта картинка создаетсяспециальным графическим редактором и сохраняется в файле с расширением.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, изображение курсора исчезнет с экрана.