Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Проблемы с vbHourglass Добавлено: 07.08.05 01:29  

Автор вопроса:  Lister | ICQ: 298621256 
Возникла проблема: у меня в некоторых случаях, например при чтении большого файла, не работает код Screen.MousePointer = vbHourglass
Использую DoEvents - не помогает :(
В чем проблема? Очень нужно изменить указатель!!! Спасите!

Ответить

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

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 08.08.05 18:25
да не может быть, сначала меняй курсор, потом читай файл, как закончил читать ставь курсор обратно. А вообще лучше кидай код, мы посмотрим...

Ответить

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



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #2
Добавлено: 12.08.05 20:28
О! Как раз по теме :)

Как изменить указатель на руку (которая установлена в системе, например, при наводке на линки в Internet Explorer)?

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 13.08.05 17:01
MousePointer = Custom

В MouseIcon выбери *.ico с рукой

Ответить

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



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #4
Добавлено: 14.08.05 18:23
2 HACKER: ага, щщщас! Я уже побежал выбирать ico с рукой! Я же писал:
которая установлена в системе, например, при наводке на линки в Internet Explorer
!

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #5 Добавлено: 14.08.05 18:42
Option Explicit

Private Declare Function LoadImage Lib "user32.dll" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Private Declare Function OleCreatePictureIndirect Lib "oleaut32" (ByRef lpPictDesc As PicBmp, riid As GUID, ByVal fOwn As Long, ByRef lplpvObj As Any) As Long

Private Type GUID
  ;Data1 As Long
  ;Data2 As Integer
  ;Data3 As Integer
  ;Data4(0 To 7) As Byte
End Type

Private Type PicBmp
  Size As Long
  Type As PictureTypeConstants
  hBmp As Long
  hPal As Long
  Reserved As Long
End Type

Private Const IMAGE_CURSOR As Long = 2
Private Const OCR_HAND As Long = 32649
Private Const LR_DEFAULTSIZE As Long = &H40
Private Const LR_SHARED As Long = &H8000

Private Sub Form_Load()
  Me.MousePointer = vbCustom
  Set Me.MouseIcon = GetPictureFromHandle(LoadImage(0, OCR_HAND, IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE Or LR_SHARED), vbPicTypeIcon)
End Sub

Public Function GetPictureFromHandle(ByVal Handle As Long, ByVal PictureType As PictureTypeConstants) As IPictureDisp
  Dim p As PicBmp, g As GUID
  
  With p
    .hBmp = Handle
    .Size = Len(p)
    .Type = PictureType
  End With
  
  'IDispatch
  With g
    .Data1 = &H20400
    .Data4(0) = &HC0
    .Data4(7) = &H46
  End With
  
  OleCreatePictureIndirect p, g, 0, GetPictureFromHandle
End Function


Примечание.
fOwn = 0 только потому, что используется LR_SHARED. Вообще там 1 обычно.

Ответить

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



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #6
Добавлено: 15.08.05 20:00
2 GSerg: почти то! Жаль, тень от курсора не отбрасывается, ведь в данном случае курсор - не курсор, а картинка :(
Большое спасибо!

Ответить

Страница: 1 |

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



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