نمایش نتایج 1 تا 3 از 3

نام تاپیک: تغییر Cursor برای اشیاء با استفاده از فایل های متفاوت

  1. #1
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,644

    تغییر Cursor برای اشیاء با استفاده از فایل های متفاوت

    سلام

    با این کدها شما می تونید فایلهای Cursor - PNG و Icon رو بعنوان Cursor استفاده کنید.


    Public Class Form2
    Dim Cur As Icon
    Dim ICO As Icon
    Dim BMP As Bitmap
    Private Sub Form2_Load(sender As Object, e As System.EventArgs) Handles Me.Load


    Dim CursorPath As String = String.Format("{0}{1}\link.cur", Application.StartupPath, "\Cursors")
    Cur = Icon.ExtractAssociatedIcon(CursorPath)
    Me.PictureBox1.Image = Cur.ToBitmap
    Me.PictureBox1.Cursor = New Cursor(Cur.Handle)


    Dim IconPath As String = String.Format("{0}{1}\Search.ico", Application.StartupPath, "\Images")
    ICO = New Icon(IconPath)
    Me.PictureBox2.Image = Image.FromFile(IconPath)
    Me.PictureBox2.Cursor = New Cursor(ICO.Handle)


    Dim ImagePath As String = String.Format("{0}{1}\New Folder.png", Application.StartupPath, "\Images")
    BMP = New Bitmap(Image.FromFile(ImagePath), New Size(24, 24))
    Me.PictureBox3.Image = BMP
    Me.PictureBox3.Cursor = New Cursor(BMP.GetHicon)


    End Sub


    End Class



    Untitled.png

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,644

    نقل قول: تغییر Cursor برای اشیاء با استفاده از فایل های متفاوت

    سلام دوباره.

    فراخوانی Cursor از فایل توسط کلاس Cursor که ورودی filename آدرس فایل رو می گیره باعث می شه نشانگر ماوس یک تصویر سیاه باشه! شاید این مشکل مربوط به نسخه ویندوز باشه اما برای کارایی بهتر از تبدیلش به آیکون می شه از تابع LoadCursorFromFileA Win32-API استفاده کرد:
    LoadCursorFromFileA function (winuser.h)

    Declaration Section:


    Private Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" _
    (ByVal lpFileName As String) As IntPtr


    Method:


    Shared Function GetCursor(lpFileName As String) As Cursor
    Dim Expr As Cursor = Nothing
    Dim Cur As IntPtr
    Cur = LoadCursorFromFile(lpFileName)
    Expr = New Cursor(Cur)
    Return Expr
    End Function

  3. #3
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,644

    نقل قول: تغییر Cursor برای اشیاء با استفاده از فایل های متفاوت

    سلام.
    در صورتی که کرسر مستقیم از ریسورس فراخوانی و Handle از اون برای تبدیل به کرسر استفاده بشه،ی تصویر سیاه از کرسر برمی گردونه
    من یک کلاس ساختم برای فراخوانی Cursor از ریسورس (resx.):


    Public Class ResxCursor
    Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (
    ByVal lpFileName As String) As IntPtr


    Public Shared Widening Operator CType(ByVal initialData As ResxCursor) As Cursor
    Dim ExtractDIR As String = IO.Path.GetFullPath(".")
    Dim ExtractPath As String = ExtractDIR + initialData._Cursor.GetHashCode.ToString
    IO.File.WriteAllBytes(ExtractPath, initialData._Cursor)
    Dim CL As IntPtr = LoadCursorFromFile(ExtractPath)
    IO.File.Delete(ExtractPath)
    Return New Cursor(CL)
    End Operator
    Protected Friend _Cursor As Byte()
    Sub New(Cursor As Byte())
    _Cursor = Cursor
    End Sub
    End Class


    این هم کد تعیین کرسر برای شیء:

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Me.Button1.Cursor = New ResxCursor(My.Resources.MainFormResource.aero_pen)
    End Sub


    اگر روش بهتری می دونید اعلام کنید.
    آخرین ویرایش به وسیله ROSTAM2 : چهارشنبه 14 دی 1401 در 17:37 عصر

تاپیک های مشابه

  1. سوال: تفاوت ref cursor و sys_refcursor در اوراکل چییست؟
    نوشته شده توسط minooladybird در بخش Oracle
    پاسخ: 1
    آخرین پست: دوشنبه 22 دی 1393, 00:35 صبح
  2. تفاوت static cursor با dynamic cursor
    نوشته شده توسط keivanalayi در بخش T-SQL
    پاسخ: 2
    آخرین پست: سه شنبه 16 مهر 1392, 21:18 عصر
  3. سوال: تغییر حالت cursor موس از حالت wait cursor روی دیتا گرید ویو
    نوشته شده توسط mahDs_gh در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 11 خرداد 1392, 21:07 عصر
  4. سوال: تغییر مکان کرسر (cursor)
    نوشته شده توسط MBG73 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 09 آذر 1390, 15:07 عصر
  5. تفاوت Cursor# با Cursor
    نوشته شده توسط یوسف زالی در بخش T-SQL
    پاسخ: 2
    آخرین پست: دوشنبه 30 خرداد 1390, 13:36 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •