Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Korzystanie z resource
busio
busio




Typ: neutral
Postów: 98
Zarejestrowany: Sep 2002
Korzystanie z resource

Witam

Mam taki problem:
Animowany kursor wpisałem do pliku .res i chciałbym go wykorzystać do podmiany -
uzywam LoadResData i mam stringa z danymi ale nie mam sposobu na uzyskanie uchwytu do kursora.
(Próbowałem LoadCursor,LoadCursorFromFile, LoadImage...).
Podejrzewam , że najlepiej użyć CreateCursor , ale nie wiem co podać jako parametry.

Może ktoś ma jakieś pomysły - będę wdzieczny.

Pozdrawiam busio

04-11-2003 16:24
Pokaż profil busio  Wyślij email do busio   Odwiedź stronę busio  
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Jedyne co znalazłem to taki sampel w API-Guide, może to ci coś pomoże:
Private Declare Function CreateCursor Lib "user32" (ByVal hInstance As Long, ByVal nXhotspot As Long, ByVal nYhotspot As Long, ByVal nWidth As Long, ByVal nHeight As Long, lpANDbitPlane As Any, lpXORbitPlane As Any) As Long
Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long
Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail:

    ' Create a 32x32 color cursor shaped somewhat like a yin-yang symbol.
    ' (The bit masks come from Microsoft's documentation on the API cursors function, just to
    ' give them their due credit.)  Note how the masks are loaded into the arrays.  The new
    ' cursor is then set to be the cursor for 10 seconds.
    Dim hnewcursor As Long  ' newly created cursor
    Dim holdcursor As Long  ' receives handle of default cursor
    Dim andbuffer As String, xorbuffer As String  ' buffers for masks
    Dim andbits(0 To 127) As Byte  ' stores the AND mask
    Dim xorbits(0 To 127) As Byte  ' stores the XOR mask
    Dim c As Integer, retval As Long  ' counter and return value

    ' Unfortunately, VB does not provide a nice way to load lots of information into an array.
    ' To load the AND and XOR masks, we put the raw hex values into the string buffers
    ' and use a loop to convert the hex values into numeric values and load them into
    ' the elements of the array.  Yes, it's ugly, but there's no better way.  Note the
    ' use of the line-continuation character here.  Each sequence of eight hex
    ' characters represents one line in the 32x32 cursor.
    andbuffer = "FFFC3FFF" & "FFC01FFF" & "FF003FFF" & "FE00FFFF" & _
            "F701FFFF" & "F003FFFF" & "F003FFFF" & "E007FFFF" & _
            "C007FFFF" & "C00FFFFF" & "800FFFFF" & "800FFFFF" & _
            "8007FFFF" & "8007FFFF" & "0003FFFF" & "0000FFFF" & _
            "00007FFF" & "00001FFF" & "00000FFF" & "80000FFF" & _
            "800007FF" & "800007FF" & "C00007FF" & "C0000FFF" & _
            "E0000FFF" & "F0001FFF" & "F0001FFF" & "F8003FFF" & _
            "FE007FFF" & "FF00FFFF" & "FFC3FFFF" & "FFFFFFFF"
    xorbuffer = "00000000" & "0003C000" & "003F0000" & "00FE0000" & _
            "0EFC0000" & "07F80000" & "07F80000" & "0FF00000" & _
            "1FF00000" & "1FE00000" & "3FE00000" & "3FE00000" & _
            "3FF00000" & "7FF00000" & "7FF80000" & "7FFC0000" & _
            "7FFF0000" & "7FFF8000" & "7FFFE000" & "3FFFE000" & _
            "3FC7F000" & "3F83F000" & "1F83F000" & "1F83E000" & _
            "0FC7E000" & "07FFC000" & "07FFC000" & "01FF8000" & _
            "00FF0000" & "003C0000" & "00000000" & "00000000"
    ' Now load these hex values into the proper arrays.
    For c = 0 To 127
        andbits(c) = Val("&H" & Mid(andbuffer, 2 * c + 1, 2))
        xorbits(c) = Val("&H" & Mid(xorbuffer, 2 * c + 1, 2))
    Next c
    ' Finally, create this cursor!  The hotspot is at (19,2) on the cursor.
    hnewcursor = CreateCursor(App.hInstance, 19, 2, 32, 32, andbits(0), xorbits(0))
    ' Set the new cursor as the current cursor for 10 seconds and then switch back.
    holdcursor = SetCursor(hnewcursor)  ' change cursor
    Sleep 10000  'Wait 10 seconds
    retval = SetCursor(holdcursor)  ' change cursor back
    ' Destroy the new cursor.
    retval = DestroyCursor(hnewcursor)
End Sub


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

05-11-2003 11:20
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
busio
busio




Typ: neutral
Postów: 98
Zarejestrowany: Sep 2002

Dzięki

Jeśli jeszcze wiesz jak z tablicy bitów stworzyć te tablice andbuffer i xorbuffer to będe dozgonnie wdzieczny.

Pozdrawiam busio

05-11-2003 14:59
Pokaż profil busio  Wyślij email do busio   Odwiedź stronę busio  
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1