Курсор из ресурсов

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

Курсор из ресурсов

Сообщение Mleha » 05.11.2006 (Вс) 8:18

НЕ могу применить курсор, который находится в ресурсах, помогите плз.
Вложения
Cursor.rar
(1.82 Кб) Скачиваний: 55

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.11.2006 (Вс) 8:40

Забавно.

Во-первых, SetCursor вызывается в ответ на WM_SETCURSOR. Очень много раз.
Во-вторых, забавно выглядит попытка загрузить ресурс при hInstance=0.
В-третьих, переАПИзм вреден.
Код: Выделить всё
  Set Me.MouseIcon = LoadResPicture("HAND_CUR", vbResCursor)
  Me.MousePointer = vbCustom

И в-четвёртых, в качестве ответа на немое "А почему он чёрный?": http://support.microsoft.com/kb/q267849
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 8:46

А как через API задать 32 битный курсор(желательно из ресурсов)?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.11.2006 (Вс) 8:51

Почему через API?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 8:54

Главное чтоб он был 32 битный, а API для этого в VB, наверное, единственный путь. ИМХО

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.11.2006 (Вс) 8:56

Mleha, ты п. 4 из моего ответа просто так пропустил али религия заставила?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 9:07

Я его прочитал, но мало что понял. Через MouseIcon и MousePointer не добьешся красивого курсора, а 256 цветов мне надо, поэтому придется API юзать!
7. Add three more color cursors in this same way. Note that these are numbered 101 - 104 in the editor


Добавить курсоры с более богатой палитрой любыми путями! ГЫ
Еще дело в том что у меня нет прог которые бы понизили палитру в моем 32 битном курсоре, влятого с Висты, чтоб он остался курсором, а не стал иконкой.

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 9:58

Пока что получилось "Читерским способом" с загрузкой из файла. Работает для 32-битных курсоров!

Код: Выделить всё
Private Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function SetSystemCursor Lib "user32.dll" (ByVal hcur As Long, ByVal id As Long) As Long
Private Const OCR_UP As Long = 32516

Private Sub Command1_Click()
    SetSystemCursor LoadCursorFromFile(App.Path & "\104.cur"), OCR_UP
End Sub

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.11.2006 (Вс) 10:47

Mleha писал(а):
7. Add three more color cursors in this same way.

Добавить курсоры с более богатой палитрой любыми путями! ГЫ

Если ты думаешь, что отквоченное переводится именно так, то тогда действительно ГЫ...

Ладно, похоже, умение читать текст отсутствует изначально. Хорошо, приведём конкретную цитату.
MSDN писал(а):Visual Basic does not provide any support for color cursors and, therefore, a color cursor cannot be used while running in the Visual Basic IDE. However, a color cursor can be used in compiled Visual Basic applications.

Хотя, наверное, во избежание дальнейших интерпретаций, нужно выделить главное слово.
MSDN писал(а):Visual Basic does not provide any support for color cursors and, therefore, a color cursor cannot be used while running in the Visual Basic IDE. However, a color cursor can be used in compiled Visual Basic applications.

Да, так, наверное, лучше...


ЗЫ. Уже даже засомневавшись в правильности сказанного выше, таки открыл прилагаемый ресурс в ResHacker'е, показал прилагаемую форму, поместил над ней мышь так, чтобы курсор мыши был рядом с картинкой ресурса в ResHacker'е... долго искал отличия, не нашёл.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

maxV
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 12.07.2004 (Пн) 18:26

Сообщение maxV » 05.11.2006 (Вс) 13:02

Mleha писал(а):Главное чтоб он был 32 битный, а API для этого в VB, наверное, единственный путь. ИМХО

А как умудрились в файл ресурсов "положить" 32 битный курсор?
По моему для файла ресурсов 256 цветов - предел.

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 15:31

maxV писал(а):А как умудрились в файл ресурсов "положить" 32 битный курсор?
По моему для файла ресурсов 256 цветов - предел.
Вложения
32Res.rar
(726 байт) Скачиваний: 53

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 05.11.2006 (Вс) 15:44

MSDN писал(а):Visual Basic does not provide any support for color cursors and, therefore, a color cursor cannot be used while running in the Visual Basic IDE. However, a color cursor can be used in compiled Visual Basic applications.


И действительно в скомпилированном екзешнике все раборает!
Даже без API. ГЫ

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 12.11.2006 (Вс) 1:53

Mleha писал(а):Даже без API. ГЫ

ГЫ, 32 битный курсор мона и самому создать при помощи API и без ресфайлов и внешних *.cur-в
курсор создается из любого рисунка... :roll:
Вложения
API_куpсор.rar
API курсор
(3.89 Кб) Скачиваний: 49

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 12.11.2006 (Вс) 17:42

а что крестик и квадратик это такие высокопочетные курсоры что идут в отдельных кнопках :D .

Бяка
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 219
Зарегистрирован: 21.09.2005 (Ср) 21:28

Сообщение Бяка » 13.11.2006 (Пн) 19:45

блин, то просто пример :D

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 13.11.2006 (Пн) 21:07

yaklit
Они совтварно создаются.
Изображение


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34

    TopList