Работа с курсорами

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kardinalli
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 01.04.2009 (Ср) 1:34

Работа с курсорами

Сообщение Kardinalli » 06.06.2009 (Сб) 22:47

Вопрос такой - как правильно работать с функцией LoadCursor, позволяющей загрузить курсор из ехе или dll файла?
К примеру, стандартные системные курсоры содержатся в user32.dll. Как их загрузить оттуда?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Работа с курсорами

Сообщение Viper » 06.06.2009 (Сб) 23:35

Как то так
Код: Выделить всё
Public Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Public Const IDC_WAIT As Long = 32514&
...
Dim hCursor As Long
hCursor = LoadCursor(0&, IDC_WAIT)

EDIT: поправил объявление функции.
Весь мир матрица, а мы в нем потоки байтов!

Kardinalli
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 01.04.2009 (Ср) 1:34

Re: Работа с курсорами

Сообщение Kardinalli » 07.06.2009 (Вс) 8:23

Viper писал(а):Как то так
Код: Выделить всё
Public Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Public Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long
Public Const IDC_WAIT As Long = 32514&
...
Dim hCursor As Long
hCursor = LoadCursor(0&, IDC_WAIT)

Чтобы использовать предопределенный курсор Win32, прикладная программа должна установить параметр hInstance в значение ПУСТО (NULL)
В теории действительно так, на практике - фик фам, не срабатывает... :(
Кстати, объявить две функции с одинаковым именем тоже нереально.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с курсорами

Сообщение Хакер » 07.06.2009 (Вс) 12:51

А зачем?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Kardinalli
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 01.04.2009 (Ср) 1:34

Re: Работа с курсорами

Сообщение Kardinalli » 07.06.2009 (Вс) 13:07

Какой вопрос, такой и ответ - нужно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с курсорами

Сообщение Хакер » 07.06.2009 (Вс) 13:09

Аааа!!

Ну тогда только как-нибудь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Работа с курсорами

Сообщение Debugger » 07.06.2009 (Вс) 13:27

Kardinalli писал(а):Кстати, объявить две функции с одинаковым именем тоже нереально.

Да? А если в разных модулях? Одну приватную, вторую - Public?

Kardinalli
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 01.04.2009 (Ср) 1:34

Re: Работа с курсорами

Сообщение Kardinalli » 07.06.2009 (Вс) 13:34

Debugger писал(а):
Kardinalli писал(а):Кстати, объявить две функции с одинаковым именем тоже нереально.

Да? А если в разных модулях? Одну приватную, вторую - Public?

Не пробовал, но в принципе, это неважно, если известен тип данных, то проще использовать подходящее описание функции.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Работа с курсорами

Сообщение Viper » 07.06.2009 (Вс) 18:35

Только сейчас заметил, что опечатка у меня в ответе. Конечно функция должна быть одна - в данном случае с аргументом Long. Впрочем, вполне можно при необходимости объявить две функции с разными именами и аргументами для одной API функции.
Весь мир матрица, а мы в нем потоки байтов!

Kardinalli
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 01.04.2009 (Ср) 1:34

Re: Работа с курсорами

Сообщение Kardinalli » 07.06.2009 (Вс) 21:50

Все, проблема решена, спасибо всем кто пытался помочь. Просто нужно было сначала использовать LoadLibrary, а потом уже все остальное...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 90

    TopList