Изменить иконку курсора мыши

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

Изменить иконку курсора мыши

Сообщение MOV » 20.05.2004 (Чт) 18:04

Есть обычная форма проекта.
Как без API можно изменить вид курсора мыши когда он находится над ней (над формой)?
Не тип курсора (MousePointer в свойствах формы), а именно его вид, то есть прикрепить к нему иконку. Свойство MouseIcon что ли? Но MouseIcon почему-то ничего не меняет.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 20.05.2004 (Чт) 20:08

Чтобы MouseIcon подхватился, нужно выставить MousePointer = vbCustom (99). Так и не иначе.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 03.06.2004 (Чт) 20:54

Есть другой путь - скрыть курсор, а на его координаты bitblit'ить необходимое изображение.
В этом случае можно использовать любой рисунок в качестве курсора.

Nina
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 27.11.2003 (Чт) 22:09
Откуда: Смоленск

Сообщение Nina » 09.06.2004 (Ср) 21:40

MousePointer=99
MouseIcon=Имя_файла
При этом почему-то, если брать файл *.cur, как советуют в разных "умных" книжках, то курсор получается черно-белый. Поэтому лучше всего брать файл *.ico или *.bmp.

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 11.06.2004 (Пт) 10:30

Nina писал(а):MousePointer=99
MouseIcon=Имя_файла
При этом почему-то, если брать файл *.cur, как советуют в разных "умных" книжках, то курсор получается черно-белый. Поэтому лучше всего брать файл *.ico или *.bmp.
Поддерживаю но анимированый не получится. Только с помощью API
но тут есть жопа. Если прога падает то курсор остается последним.. причем на всю винду...
Moderator VBStreets
---------------------------

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 11.06.2004 (Пт) 18:30

Две кнопки: первая - поменять, вторая - восстановить

Код: Выделить всё
'Code by Jerry Grant (Jerry@jg-design.net)
'Visit his website at http://www.jg-design.net
'This example requires two command buttons
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function CopyIcon Lib "user32" (ByVal hIcon As Long) As Long
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, ByVal id As Long) As Long
Private Declare Function GetCursor Lib "user32" () As Long
Private Const OCR_NORMAL As Long = 32512
Private currenthcurs As Long
Private tempcurs As Long
Private newhcurs As Long
Private Sub Command1_Click()
    Dim myDir As String
    Dim lDir As Long
    myDir = Space(255)
    currenthcurs = GetCursor()
    tempcurs = CopyIcon(currenthcurs)
    lDir = GetWindowsDirectory(myDir, 255)
    myDir = Left$(myDir, lDir) & "\cursors\banana.ani"
    newhcurs = LoadCursorFromFile(myDir)
    Call SetSystemCursor(newhcurs, OCR_NORMAL)
End Sub
Private Sub Command2_Click()
    Call SetSystemCursor(tempcurs, OCR_NORMAL)
End Sub
Нет меня больше


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

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

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

    TopList