Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Цветной курсор в программах Добавлено: 23.01.05 12:36  

Автор вопроса:  Black Dragon | Web-сайт: в разработке | ICQ: 321186096 
Как вставить в свою прогу цветной курсор? И как получить текущий курсор, появляющийся, н-р, на ссылках в IE (тот, который обычно в виде руки)?

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 23.01.05 15:04
2) Restorator

Ответить

Номер ответа: 2
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #2 Добавлено: 23.01.05 15:21
1. Возьми любой курсор и раскрась его например в AWicons
2. GetCursor если надо заполучить хэндл курсора, или смотри в папке Windows\Cursors или AWicons

Ответить

Номер ответа: 3
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #3
Добавлено: 23.01.05 16:43
Дык когда вставляешь курсор в прогу (хоть 256 цветов) в самой проге он, почему-то, черно-белый!!!!!!

Обижаешь, cresta, я не настолько дурак, чтобы пихать черно-белый курсор и спрашивать, почему он не цветной %(

Ответить

Номер ответа: 4
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #4
Добавлено: 23.01.05 16:44
А можно в прогу запихнуть анимированный курсор?

Ответить

Номер ответа: 5
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #5
Добавлено: 23.01.05 17:22
Можно, с помощью функции LoadCursorFromFile.

Ответить

Номер ответа: 6
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #6 Добавлено: 23.01.05 17:43
Иконки цветными грузятся, конечно нужно найти подходящую.

Ответить

Номер ответа: 7
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #7
Добавлено: 23.01.05 19:22
2Mihalыch: насчет иконок я знаю, но их использование неудобно - "горячая точка" находится всегда в 16x16...

2Alex(S): как-нибудь можно загрузить анимированный курсор не из памяти, а из ресурсов (не сохраняя ничего на диск)?

Ответить

Номер ответа: 8
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #8
Добавлено: 23.01.05 19:55
А ничего на диск сохранять и не надо, просто грузишь нужный курсор из определенного места. Вот и все.
А что ты понимаешь под ресурсами?

Ответить

Номер ответа: 9
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #9
Добавлено: 23.01.05 22:11
Имеются в виду ресурсы программы (файл RES)!

Alex(S), ты меня не понял. Я хочу в прогу вставить свой ANI-курсор. Вероятнее всего, на компе User'а его не будет. Вот я и спрашиваю, можно ли обойтись без сохранения курсора на диск?

Ответить

Номер ответа: 10
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #10
Добавлено: 23.01.05 22:51
Нет, нельзя. Так как в файл ресурсов невозможно добавить файл типа ani.

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 24.01.05 00:23
В файл ресурсов можно добавить любой файл, если использовать для этого нормальнын редакторы ресурсов

Ответить

Номер ответа: 12
Автор ответа:
 Alex(S)



Вопросов: 8
Ответов: 31
 Web-сайт: sapr7.by.ru
 Профиль | | #12
Добавлено: 24.01.05 00:33
Запихать то можно, но вот использовать из него, я лично не знаю как, да и с ходу не получилось. Мой совет не заморачивайся, используй функцию LoadCursorFromFile. А чтобы на комп юзера скопировать курсор можно его включить в программу установки твоей проги.

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 24.01.05 00:58
Использовать через API

Ответить

Номер ответа: 14
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #14 Добавлено: 24.01.05 01:10
Public Sub SetCursor(ByVal cursorName As String, ByVal targetForm As Form)
    Dim ct As Control, barr() As Byte, i As Long, cpos As POINTAPI, fN As Integer
    
    barr = LoadResData(cursorName, "CUSTOM";)
    fN = FreeFile
    Open appPath + "Temp\temp.ani" For Binary As #fN
    For i = 0 To UBound(barr)
        Put #fN, , barr(i)
    Next i
    Close #fN
    
    On Error Resume Next
    mhAniCursor = LoadCursorFromFile(appPath + "Temp\temp.ani";)
    lResult = SetClassLong(targetForm.hwnd, GCL_HCURSOR, mhAniCursor)
    For Each ct In targetForm.Controls
        mhAniCursor = LoadCursorFromFile(appPath + "Temp\temp.ani";)
        lResult = SetClassLong(ct.hwnd, GCL_HCURSOR, mhAniCursor)
    Next ct
    On Error GoTo 0
    
    DoEvents
    Call GetCursorPos(cpos)
    Call SetCursorPos(cpos.x + 1, cpos.y + 1)
    targetForm.Refresh
End Sub

Public Sub RestoreCursor(ByVal targetForm As Form)
    Dim ct As Control, cpos As POINTAPI, iBeamCursor As Long
    
    On Error Resume Next
    lResult = SetClassLong(targetForm.hwnd, GCL_HCURSOR, mhBaseCursor)
    iBeamCursor = LoadCursor(0&, IDC_IBEAM)
    For Each ct In targetForm.Controls
        If TypeOf ct Is TextBox Then
            lResult = SetClassLong(ct.hwnd, GCL_HCURSOR, iBeamCursor)
        Else
            lResult = SetClassLong(ct.hwnd, GCL_HCURSOR, mhBaseCursor)
        End If
    Next ct
    lResult = DestroyCursor(mhAniCursor)
    DoEvents
    Call GetCursorPos(cpos)
    Call SetCursorPos(cpos.x + 1, cpos.y + 1)
    targetForm.Refresh
    Kill appPath + "Temp\temp.ani"
    On Error GoTo 0
End Sub


В редакторе ресурсов создай ресурс "CUSTOM", в котором будет анимированный курсор.

Ответить

Номер ответа: 15
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #15 Добавлено: 24.01.05 01:13
Хе... выдрано из проекта трёхлетней давности... запись в файл сделана, прямо скажем, корявенько :))

Что не объявлено в самих процедурах - то глобальное.

"Call SetCursorPos(cpos.x + 1, cpos.y + 1)": таким образом я пытался "обновить" курсор... но, по-моему, так и не получилось...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам