Setting images as mouse cursor?

Just starting out? Need help? Post your questions and find answers here.
dcr3
Enthusiast
Enthusiast
Posts: 165
Joined: Fri Aug 04, 2017 11:03 pm

Setting images as mouse cursor?

Post by dcr3 »

Hi.How do I change the mouse cursor, as I click on an Imagegadget.
User avatar
STARGÅTE
Addict
Addict
Posts: 2067
Joined: Thu Jan 10, 2008 1:30 pm
Location: Germany, Glienicke
Contact:

Re: Setting images as mouse cursor?

Post by STARGÅTE »

The question in the topic is different from the question in the thread.

If you want to use an image as a cursor, you can try this code from Shardik:
viewtopic.php?p=558816#p558816

If you want to change the cursor as you click on an image gadget, you have to handle the gadget event and then call:
SetGadgetAttribute() with #PB_Canvas_Cursor. But this works only inside a CanvasGadget.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Lizard - Script language for symbolic calculations and moreTypeface - Sprite-based font include/module
dcr3
Enthusiast
Enthusiast
Posts: 165
Joined: Fri Aug 04, 2017 11:03 pm

Re: Setting images as mouse cursor?

Post by dcr3 »

Example:

Change the mouse cursor, as I click on an Imagegadget.

Code: Select all

Enumeration Windows
  #Window_4_thl
EndEnumeration
Enumeration Gadgets
  #CntWrdHl
EndEnumeration 
Enumeration Images   
  #Pen_ID
  #Pencil_ID
  #ImgPen
  #ImgPencil
EndEnumeration

UsePNGImageDecoder()
CatchImage( #Pen_ID, ?Pen)
CatchImage( #Pencil_ID, ?Pencil)

flg=#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered
  If OpenWindow(#Window_4_thl, 0, 0,620,130, "Setting images as a Mouse Cursor?", flg)
    ImageGadget(#ImgPen, 10, 10, 32, 32, ImageID(#Pen_ID))
    ImageGadget(#ImgPencil,10, 60, 32, 32, ImageID(#Pencil_ID))
  EndIf
;--------------------------------------------------------------------------- 
  
;--------------------------------------------------------------------------- 

  Repeat   
    Select WaitWindowEvent()
     
    Case #PB_Event_CloseWindow
     
      appQuit = 1
  
    Case #ImgPen
      If EventType()=#PB_EventType_LeftClick
        ;-----------------------------------------
         ;SetCursor_(
        ;-----------------------------------------
      EndIf
      
    Case #WM_MOUSEMOVE
      
    Case  #WM_LBUTTONUP
      
    Case #PB_Event_CloseWindow
  
  EndSelect

Until appQuit

DataSection
  Pen:
    Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$4144493D040000F4
    Data.q $1B4C7D97CD855854,$696852D7BFC71875,$763839695918140B,$135325398471584B,$304D5623268339B7
    Data.q $60C4C9A89A0B2593,$7CCCC7FA351A8BA2,$92E6625C4CE9D44B,$1CC2171866667309,$C1B296B8870EA643
    Data.q $D2B8396943053300,$2CED07F9EBE94BDE,$5C9E49F04BCB4285,$9F7DEF9F3DFBF773,$67AC249242572EE7
    Data.q $B690107FFE95D6C8,$B9F3F2FE3BBFC596,$67FF2A42BCA9E21A,$35BF0F17C1E4FDAB,$5E47926B4924916F
    Data.q $477928D2D6CDA279,$EF5D1C9164924ACF,$DD7E247DDBECCF4B,$E99967E8A480B49A,$819E103B7E867540
    Data.q $3F20F7B5B431CCF5,$80B7AAED7E3FBD4B,$6FF9F4DA12BAE8A4,$BDF30A3E1F8C41C3,$81496107F81F5C06
    Data.q $1490054D68717D3C,$410A113B2D2C97BD,$BB51802B0EDABD6E,$841AF418250A3B88,$BD6AC43DF8C3E209
    Data.q $5BA62C69DE8A4807,$00025EAF7AA85321,$2F91AA66504D4B18,$A9D8E5705A565067,$55D1490044D6FB8E
    Data.q $DD91969E4175237A,$E53DC0D70311DDDB,$9E79CF38EC73A4C0,$68A490878AEF685B,$9F4F2641FC9E8153
    Data.q $989D61E06A655703,$8983E1C38537B09A,$A4EFDB6D81C8AFF6,$A1B50C8A4FED0A65,$37035AB83FF3A7AF
    Data.q $18307CFDA729813B,$CB1AA27F78145C78,$796D634368A48076,$976B8DC30643FD4F,$66580C5C785AE063
    Data.q $07062ED40C1833BC,$959B9D149014F996,$F0BF65D74C1AD793,$DE717C39FA08DBEA,$960334DC16A66501
    Data.q $F028B37EFC077471,$68A4802CA56AA5DE,$6F6752AADD935A8D,$C369BADC4BF37C6D,$B3E8FC0A985C8AEE
    Data.q $4CDF7EFD1C65824F,$24A5EA64EEF0288D,$5169A5529568A480,$00057E5BF556E567,$4D43E63C3012ED9C
    Data.q $E23CD0ACFD743E55,$D266B6499E0516AD,$3CAE915CB4524033,$057AC0607BC9CDAD,$FEB0593533CF6CC0
    Data.q $A9AFEDC33232C225,$2A6E54B1F81448FC,$B9D7D95364A0A7E9,$E073DD7D8375F41B,$028AC9C62E0A67BC
    Data.q $49E054BEF8144BB7,$327FEBDED0E0F80B,$2E0738BDBEA7E569,$79C0BC9CA6B85878,$481C2A9DDF0288F6
    Data.q $D0EBA0767DCE0662,$C75812E3C3E5F54B,$1639C2CFA58DB0DF,$E5E63CE05784ECD3,$62599BC0662481C2
    Data.q $FB843559B107C6C0,$7381042B30A3E6B7,$27DEE3DE2132CDC1,$D01497C2E5A5FC0A,$BE8BE5A857515B50
    Data.q $CE0BD9D2FC69E77A,$3D2A361F06D941E5,$7EFF814407D3DCE0,$3C56D4340545F025,$B59B2D89D76C7E62
    Data.q $D04DEB64E3A63628,$51936215336C3A25,$40E14AD37C0A24DB,$3F3068ADA86C2182,$1FF93A2D8AE3F3BA
    Data.q $4FC6602DDB80DFBF,$8CD3A39035C87FA0,$0E035787C5C9FEBE,$12E9EB2292421824,$0E3F2D15B2F3BCB5
    Data.q $DFD9F6B0A53DCF62,$8E05AB6BEF4DFA3D,$366201041016EDC6,$05877B5AF7A0E164,$06116547620C2EE7
    Data.q $20DED8CF4FE69886,$285C98B2931E4208,$1A80EF10151735A2,$85F788AB72C7A180,$DCDECD8B08D2A3B0
    Data.q $4D6453001EF436D4,$F463988100419228,$10411292387AF45C,$033DBEED42D20061,$AAEE009000C84104
    Data.q $3A7210B4E4FF5BBE,$EDC64DC1C46DAF59,$5F4B899801F00009,$485988E6C231FD24,$050000EA2200AC41
    Data.q $1D63C52385DE4480,$52E3D1039E617588,$252152E68D02200E,$55FBAF62DCEF3DF8,$D39FFBAC6E5E2AFB
    Data.q $0AA984337635017F,$454900000000663F,$3131826042AE444E
    Data.b $34,$32

  Pencil:
    Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$414449E6040000F4
    Data.q $D44C7997C5855854,$01EDFDBF3FC71447,$A3974B80B720B22E,$5ADB1A5136AB8680,$AA9A6355E36F5AB1
    Data.q $5A9B1B58A9B4A6B1,$8C16C6D6B6D6AB63,$B5135B46D531A6C5,$80F0622AD58A2451,$5C396104888F012A
    Data.q $1FEEF6175D77594E,$E4BEB101159AB305,$DE67EFBCCDF99265,$0C5CB9704F266FCC,$C02E780D4545B6D4
    Data.q $04184553C916AD0A,$009678D57A003FFB,$3F66029C177AC0A9,$EAEAB3153074906E,$C109E1E117F440A4
    Data.q $4134B05F8F1F5E5E,$9FB7DB7871493235,$56803F81AB6F9A39,$2D5A1581968339F7,$46EFF2B30FEACA40
    Data.q $3894BC66C6127269,$1BE5DF1238505874,$980CBE9D1E0E8EB6,$F00B080341BCE8F9,$8BA9BCA4CA68B71E
    Data.q $EF423E3BCFAEC716,$97EE15FAE7FCABE7,$24272495A9AB2296,$5D5640099F230087,$2E273BA9CBFA585D
    Data.q $D5B30AAAAABC3E5A,$A5221CDCCDECACC0,$514896B6AD8755A2,$34E640099FA80BE6,$0C1BD38CADE0B64D
    Data.q $58B3AFF470444444,$0A557366E61616AD,$69E78E0B3994AEC7,$CAA699200E832381,$8DA5213F9C0C4B8E
    Data.q $288B5B5B53772773,$30904D88BA2A9C8A,$9476EF584E1CC7F7,$802A0D7602EF5435,$1359957C56CFB273
    Data.q $4327322216124626,$2877D7C67FBFF9CF,$B9CF983C1C8D8D8D,$CD92BA4D1BAEC5F3,$F8A8180B8F76DD3A
    Data.q $AB3E54126FC5EFF7,$B8CBB860C78CCCA6,$57ADE7098EC6688C,$0D689A0375FFEC0C,$5D4D6EFCEC0DDBBA
    Data.q $936AD473AF8DE561,$1259BE07BA0338A7,$9CFA76BBE7EE56B3,$0A3D25226B69DC51,$0AB6E4051440E089
    Data.q $4C8B90391CABC542,$51CBAD55D556B450,$B033BF562E3C2FAB,$4D8A5E0956179DFE,$9891D76FA327E633
    Data.q $E0A14C8147D28A16,$62F275EF985BA5CA,$7CBEA817CDA448D2,$E2DEDEE306CAFDEC,$414CC8C2ED600BF5
    Data.q $1D4C54EDFB3ADD2E,$4723E940084E89B7,$DF5CD0D455545C10,$F09DA353113FC482,$3D0F9B17F99BC500
    Data.q $B0DCF560B79F6629,$29059CEE792F32C5,$E7E1FB4644751974,$6E26CA9A8397032F,$7166E58BF5225456
    Data.q $D93B68521BCC2203,$05672B004FBAE797,$25E6F35DD2A510CD,$A09BCC38266CEAE1,$29DBEAE8ED380520
    Data.q $9152E58AAA432E2F,$ED4F6EB25AE9D116,$08208001EC2EBEC1,$144D7BF54E64071E,$5BDB9013B3B9BCC5
    Data.q $76015C3E1949FA50,$20944F171376FA2B,$EEC116A17CE1A61F,$157DDD86BEE360F8,$93E49B2D93C0087F
    Data.q $4B1C98CCCF3972E2,$3A9449D4A20EF4A0,$1E14ACF74C56EC00,$1D69D14D402280BE,$A3B4D0396E9F6C58
    Data.q $3DE19BBC02BDE23F,$2288CF4E6674E1C2,$F1AF10B766C4654A,$3F89C1C58B05BB07,$81D4533942AB904B
    Data.q $F7DB50FB32FD6CCD,$8ED682FE5E8715FD,$8547CB5DA1D1D5CE,$822718907534E998,$C57DD1C5D2D382DD
    Data.q $1B31589614DE64C8,$881C6DB50FB39BCD,$9A6869B32A006F78,$4825243565E50C48,$97BFC385BB056EC0
    Data.q $4F73935ECE04B823,$819AFD7CA7E1FE6F,$8504D1AF1006F78A,$DA1A5B1695357F8F,$0B7FDFC95BB016EA
    Data.q $EF5BDA2AB54A0397,$C469E4FC6052FCE7,$302E2D3D2067F1E1,$0A18C27133972E42,$943060465058814E
    Data.q $39EFB7993634941B,$0339E0E2B4F9596D,$2D152B7E5B1BC021,$18E4D491A3461B56,$7545E7BF5CB1016C
    Data.q $8347EB42DEC765BD,$F7DD2614F4200E21,$23C201EC0EBC0080,$356B8E31D2F9F055,$DDBB3A96FA6D35ED
    Data.q $3B2FC7B908B66454,$79BAA9E3457B800D,$0F8028F3F15BD7D0,$8EFA57C0587FCCB0,$03AE00A81CA0463B
    Data.q $B01DBB7470098035,$DD9DDF3D7D3DB5B9,$4803B8813D69EAEE,$0230062014C01180,$D00B00D9BBADDDF5
    Data.q $F606EADDBA5B88F5,$5001007702278C10,$93C3B6FF8C80E102,$0B3DC067BB83BB39,$24FE3DA2DD00CE03
    Data.q $57B9ECBCF033DC1B,$B87308490102FFC7,$490000000023EEB2,$31826042AE444E45
    Data.b $33,$31,$31
EndDataSection

User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8425
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Setting images as mouse cursor?

Post by netmaestro »

Back in 2005 when I was just starting out I asked this question. A senior user named Sparkie answered it for me then and his answer still works well today. It's here: viewtopic.php?f=13&t=18859
BERESHEIT
RASHAD
PureBasic Expert
PureBasic Expert
Posts: 4635
Joined: Sun Apr 12, 2009 6:27 am

Re: Setting images as mouse cursor?

Post by RASHAD »

Hi NM
I hope you are in a good shape my friend

Hi dcr3

Code: Select all

Enumeration Windows
  #Window_4_thl
EndEnumeration

Enumeration Gadgets
  #CntWrdHl
EndEnumeration 

Enumeration Images   
  #Pen_ID
  #Pencil_ID
  #ImgPen
  #ImgPencil
  #Canvas
EndEnumeration

Procedure CreateCursor(gad)
  img = CreateImage(#PB_Any, GadgetWidth(gad),GadgetHeight(gad), 32 ,#PB_Image_Transparent)
  If img
    hdc = StartDrawing(ImageOutput(img))
    SendMessage_(GadgetID(gad),#WM_PRINT,hDC,#PRF_CHILDREN|#PRF_CLIENT|#PRF_ERASEBKGND)
    StopDrawing()
  EndIf  
  icoInf.ICONINFO
  icoInf\fIcon    = 0
  icoInf\xHotspot = 15
  icoInf\yHotspot = 0
  icoInf\hbmMask  = ImageID(img)
  icoInf\hbmColor = ImageID(img)
  customCursor    = CreateIconIndirect_(icoInf)
  FreeImage(img)
  ProcedureReturn customCursor
EndProcedure

UsePNGImageDecoder()
CatchImage( #Pen_ID, ?Pen)
CatchImage( #Pencil_ID, ?Pencil)

flg=#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered
If OpenWindow(#Window_4_thl, 0, 0,620,130, "Setting images as a Mouse Cursor?", flg)
  ImageGadget(#ImgPen, 10, 10, 32, 32, ImageID(#Pen_ID))
  ImageGadget(#ImgPencil,10, 60, 32, 32, ImageID(#Pencil_ID))
  CanvasGadget(#Canvas,50, 10, 550, 100, #PB_Canvas_Border )
EndIf
;--------------------------------------------------------------------------- 

;--------------------------------------------------------------------------- 

Repeat   
  Select WaitWindowEvent()
      
    Case #PB_Event_CloseWindow     
      appQuit = 1
      
    Case #WM_MOUSEMOVE
      GetCursorPos_(p.POINT)
      MapWindowPoints_(0, WindowID(#Window_4_thl), p, 1)
      GadH = ChildWindowFromPoint_(WindowID(#Window_4_thl), p\x | p\y << 32)
      GadID = GetDlgCtrlID_(GadH)
      Select GadID
        Case #Canvas
          SetGadgetAttribute(#Canvas,#PB_Canvas_CustomCursor,customCursor)
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #ImgPen,#ImgPencil
          Select EventType()
            Case #PB_EventType_LeftClick
              customCursor = CreateCursor(EventGadget())
          EndSelect
      EndSelect
      
  EndSelect
  
Until appQuit

DataSection
  Pen:
  Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$4144493D040000F4
  Data.q $1B4C7D97CD855854,$696852D7BFC71875,$763839695918140B,$135325398471584B,$304D5623268339B7
  Data.q $60C4C9A89A0B2593,$7CCCC7FA351A8BA2,$92E6625C4CE9D44B,$1CC2171866667309,$C1B296B8870EA643
  Data.q $D2B8396943053300,$2CED07F9EBE94BDE,$5C9E49F04BCB4285,$9F7DEF9F3DFBF773,$67AC249242572EE7
  Data.q $B690107FFE95D6C8,$B9F3F2FE3BBFC596,$67FF2A42BCA9E21A,$35BF0F17C1E4FDAB,$5E47926B4924916F
  Data.q $477928D2D6CDA279,$EF5D1C9164924ACF,$DD7E247DDBECCF4B,$E99967E8A480B49A,$819E103B7E867540
  Data.q $3F20F7B5B431CCF5,$80B7AAED7E3FBD4B,$6FF9F4DA12BAE8A4,$BDF30A3E1F8C41C3,$81496107F81F5C06
  Data.q $1490054D68717D3C,$410A113B2D2C97BD,$BB51802B0EDABD6E,$841AF418250A3B88,$BD6AC43DF8C3E209
  Data.q $5BA62C69DE8A4807,$00025EAF7AA85321,$2F91AA66504D4B18,$A9D8E5705A565067,$55D1490044D6FB8E
  Data.q $DD91969E4175237A,$E53DC0D70311DDDB,$9E79CF38EC73A4C0,$68A490878AEF685B,$9F4F2641FC9E8153
  Data.q $989D61E06A655703,$8983E1C38537B09A,$A4EFDB6D81C8AFF6,$A1B50C8A4FED0A65,$37035AB83FF3A7AF
  Data.q $18307CFDA729813B,$CB1AA27F78145C78,$796D634368A48076,$976B8DC30643FD4F,$66580C5C785AE063
  Data.q $07062ED40C1833BC,$959B9D149014F996,$F0BF65D74C1AD793,$DE717C39FA08DBEA,$960334DC16A66501
  Data.q $F028B37EFC077471,$68A4802CA56AA5DE,$6F6752AADD935A8D,$C369BADC4BF37C6D,$B3E8FC0A985C8AEE
  Data.q $4CDF7EFD1C65824F,$24A5EA64EEF0288D,$5169A5529568A480,$00057E5BF556E567,$4D43E63C3012ED9C
  Data.q $E23CD0ACFD743E55,$D266B6499E0516AD,$3CAE915CB4524033,$057AC0607BC9CDAD,$FEB0593533CF6CC0
  Data.q $A9AFEDC33232C225,$2A6E54B1F81448FC,$B9D7D95364A0A7E9,$E073DD7D8375F41B,$028AC9C62E0A67BC
  Data.q $49E054BEF8144BB7,$327FEBDED0E0F80B,$2E0738BDBEA7E569,$79C0BC9CA6B85878,$481C2A9DDF0288F6
  Data.q $D0EBA0767DCE0662,$C75812E3C3E5F54B,$1639C2CFA58DB0DF,$E5E63CE05784ECD3,$62599BC0662481C2
  Data.q $FB843559B107C6C0,$7381042B30A3E6B7,$27DEE3DE2132CDC1,$D01497C2E5A5FC0A,$BE8BE5A857515B50
  Data.q $CE0BD9D2FC69E77A,$3D2A361F06D941E5,$7EFF814407D3DCE0,$3C56D4340545F025,$B59B2D89D76C7E62
  Data.q $D04DEB64E3A63628,$51936215336C3A25,$40E14AD37C0A24DB,$3F3068ADA86C2182,$1FF93A2D8AE3F3BA
  Data.q $4FC6602DDB80DFBF,$8CD3A39035C87FA0,$0E035787C5C9FEBE,$12E9EB2292421824,$0E3F2D15B2F3BCB5
  Data.q $DFD9F6B0A53DCF62,$8E05AB6BEF4DFA3D,$366201041016EDC6,$05877B5AF7A0E164,$06116547620C2EE7
  Data.q $20DED8CF4FE69886,$285C98B2931E4208,$1A80EF10151735A2,$85F788AB72C7A180,$DCDECD8B08D2A3B0
  Data.q $4D6453001EF436D4,$F463988100419228,$10411292387AF45C,$033DBEED42D20061,$AAEE009000C84104
  Data.q $3A7210B4E4FF5BBE,$EDC64DC1C46DAF59,$5F4B899801F00009,$485988E6C231FD24,$050000EA2200AC41
  Data.q $1D63C52385DE4480,$52E3D1039E617588,$252152E68D02200E,$55FBAF62DCEF3DF8,$D39FFBAC6E5E2AFB
  Data.q $0AA984337635017F,$454900000000663F,$3131826042AE444E
  Data.b $34,$32
  
  Pencil:
  Data.q $0A1A0A0D474E5089,$524448490D000000,$2000000020000000,$7A7A730000000608,$414449E6040000F4
  Data.q $D44C7997C5855854,$01EDFDBF3FC71447,$A3974B80B720B22E,$5ADB1A5136AB8680,$AA9A6355E36F5AB1
  Data.q $5A9B1B58A9B4A6B1,$8C16C6D6B6D6AB63,$B5135B46D531A6C5,$80F0622AD58A2451,$5C396104888F012A
  Data.q $1FEEF6175D77594E,$E4BEB101159AB305,$DE67EFBCCDF99265,$0C5CB9704F266FCC,$C02E780D4545B6D4
  Data.q $04184553C916AD0A,$009678D57A003FFB,$3F66029C177AC0A9,$EAEAB3153074906E,$C109E1E117F440A4
  Data.q $4134B05F8F1F5E5E,$9FB7DB7871493235,$56803F81AB6F9A39,$2D5A1581968339F7,$46EFF2B30FEACA40
  Data.q $3894BC66C6127269,$1BE5DF1238505874,$980CBE9D1E0E8EB6,$F00B080341BCE8F9,$8BA9BCA4CA68B71E
  Data.q $EF423E3BCFAEC716,$97EE15FAE7FCABE7,$24272495A9AB2296,$5D5640099F230087,$2E273BA9CBFA585D
  Data.q $D5B30AAAAABC3E5A,$A5221CDCCDECACC0,$514896B6AD8755A2,$34E640099FA80BE6,$0C1BD38CADE0B64D
  Data.q $58B3AFF470444444,$0A557366E61616AD,$69E78E0B3994AEC7,$CAA699200E832381,$8DA5213F9C0C4B8E
  Data.q $288B5B5B53772773,$30904D88BA2A9C8A,$9476EF584E1CC7F7,$802A0D7602EF5435,$1359957C56CFB273
  Data.q $4327322216124626,$2877D7C67FBFF9CF,$B9CF983C1C8D8D8D,$CD92BA4D1BAEC5F3,$F8A8180B8F76DD3A
  Data.q $AB3E54126FC5EFF7,$B8CBB860C78CCCA6,$57ADE7098EC6688C,$0D689A0375FFEC0C,$5D4D6EFCEC0DDBBA
  Data.q $936AD473AF8DE561,$1259BE07BA0338A7,$9CFA76BBE7EE56B3,$0A3D25226B69DC51,$0AB6E4051440E089
  Data.q $4C8B90391CABC542,$51CBAD55D556B450,$B033BF562E3C2FAB,$4D8A5E0956179DFE,$9891D76FA327E633
  Data.q $E0A14C8147D28A16,$62F275EF985BA5CA,$7CBEA817CDA448D2,$E2DEDEE306CAFDEC,$414CC8C2ED600BF5
  Data.q $1D4C54EDFB3ADD2E,$4723E940084E89B7,$DF5CD0D455545C10,$F09DA353113FC482,$3D0F9B17F99BC500
  Data.q $B0DCF560B79F6629,$29059CEE792F32C5,$E7E1FB4644751974,$6E26CA9A8397032F,$7166E58BF5225456
  Data.q $D93B68521BCC2203,$05672B004FBAE797,$25E6F35DD2A510CD,$A09BCC38266CEAE1,$29DBEAE8ED380520
  Data.q $9152E58AAA432E2F,$ED4F6EB25AE9D116,$08208001EC2EBEC1,$144D7BF54E64071E,$5BDB9013B3B9BCC5
  Data.q $76015C3E1949FA50,$20944F171376FA2B,$EEC116A17CE1A61F,$157DDD86BEE360F8,$93E49B2D93C0087F
  Data.q $4B1C98CCCF3972E2,$3A9449D4A20EF4A0,$1E14ACF74C56EC00,$1D69D14D402280BE,$A3B4D0396E9F6C58
  Data.q $3DE19BBC02BDE23F,$2288CF4E6674E1C2,$F1AF10B766C4654A,$3F89C1C58B05BB07,$81D4533942AB904B
  Data.q $F7DB50FB32FD6CCD,$8ED682FE5E8715FD,$8547CB5DA1D1D5CE,$822718907534E998,$C57DD1C5D2D382DD
  Data.q $1B31589614DE64C8,$881C6DB50FB39BCD,$9A6869B32A006F78,$4825243565E50C48,$97BFC385BB056EC0
  Data.q $4F73935ECE04B823,$819AFD7CA7E1FE6F,$8504D1AF1006F78A,$DA1A5B1695357F8F,$0B7FDFC95BB016EA
  Data.q $EF5BDA2AB54A0397,$C469E4FC6052FCE7,$302E2D3D2067F1E1,$0A18C27133972E42,$943060465058814E
  Data.q $39EFB7993634941B,$0339E0E2B4F9596D,$2D152B7E5B1BC021,$18E4D491A3461B56,$7545E7BF5CB1016C
  Data.q $8347EB42DEC765BD,$F7DD2614F4200E21,$23C201EC0EBC0080,$356B8E31D2F9F055,$DDBB3A96FA6D35ED
  Data.q $3B2FC7B908B66454,$79BAA9E3457B800D,$0F8028F3F15BD7D0,$8EFA57C0587FCCB0,$03AE00A81CA0463B
  Data.q $B01DBB7470098035,$DD9DDF3D7D3DB5B9,$4803B8813D69EAEE,$0230062014C01180,$D00B00D9BBADDDF5
  Data.q $F606EADDBA5B88F5,$5001007702278C10,$93C3B6FF8C80E102,$0B3DC067BB83BB39,$24FE3DA2DD00CE03
  Data.q $57B9ECBCF033DC1B,$B87308490102FFC7,$490000000023EEB2,$31826042AE444E45
  Data.b $33,$31,$31
EndDataSection

Egypt my love
dcr3
Enthusiast
Enthusiast
Posts: 165
Joined: Fri Aug 04, 2017 11:03 pm

Re: Setting images as mouse cursor?

Post by dcr3 »

Hi.STARGÅTE,netmaestro,RASHAD.

I want move it across to an external program.
not on a CanvasGadget.


I want to keep this bit.

Code: Select all

Case #PB_Event_Gadget
      Select EventGadget()
        Case #ImgPen,#ImgPencil ;  nice mutiple images.
          Select EventType()
            Case #PB_EventType_LeftClick
              CreateCursor(EventGadget())
          EndSelect
      EndSelect
	

Code: Select all

Case #WM_MOUSEMOVE
      GetCursorPos_(p.POINT)
      MapWindowPoints_(0, WindowID(#Window_4_thl), p, 1)
      Select ChildWindowFromPoint_(WindowID(#Window_4_thl), p\x | p\y << 32)
	 ;----------------------------------- 
	 ;Not this bit:
      ;  Case GadgetID(#Canvas)
      ;   SetGadgetAttribute(#Canvas,#PB_Canvas_CustomCursor,customCursor)
	 ;----------------------------------- 
      EndSelect  
	


In VB6 looks like this.

Code: Select all

Private Sub Pencil_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    If Button = vbLeftButton And Not m_bDragging Then     
        m_bDragging = True      
        Me.MouseIcon = imgCursor.MouseIcon
        Me.MousePointer = 99      
        Pencil.Picture = Nothing
    End If
End Sub
Private Sub Pencil_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
    If Button = vbLeftButton And m_bDragging Then
        Dim tPA As POINTAPI  
        GetCursorPos tPA 
		'
    End If
End Sub
Private Sub Pencil_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbLeftButton And m_bDragging Then
        m_bDragging = False 
        Me.MousePointer = vbNormal
        Pencil.Picture = imgCursor.MouseIcon
    End If
End Sub
dcr3
Enthusiast
Enthusiast
Posts: 165
Joined: Fri Aug 04, 2017 11:03 pm

Re: [Solved]Setting images as mouse cursor?

Post by dcr3 »

Solved using Shardik's code. Thanks.
viewtopic.php?p=558816#p558816
Post Reply