سلام
من داخل فرمم یک عکس گذاشتم و میخوام مثلا رنگ سفید اون عکس نمایش داده نشه(مثلا یک دایره ای که داخل دایره خاکستری هست و بیرون دایره سفید و این عکس رو داخل فرم میزارم و فرمم دایره ای شکل بشه)
لطفا راهنمایی کنین
Printable View
سلام
من داخل فرمم یک عکس گذاشتم و میخوام مثلا رنگ سفید اون عکس نمایش داده نشه(مثلا یک دایره ای که داخل دایره خاکستری هست و بیرون دایره سفید و این عکس رو داخل فرم میزارم و فرمم دایره ای شکل بشه)
لطفا راهنمایی کنین
سلام
این فایل رو به پروژت اضافه کن بعد خاصیت MaskColor رو روی رنگ سفید تنظیم کن.
شرمنده دقیقا متوجه نشدم که باید چی کنم؟؟؟؟
Option Explicit
Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Const LWA_COLORKEY = &H1
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Const BM_SETSTATE = &HF3
Private Sub Form_Load()
Dim Ret As Long
Dim CLR As Long
Me.BackColor = RGB(255, 255, 255)
CLR = Me.BackColor
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes Me.hWnd, CLR, 0, LWA_COLORKEY
End Sub
با استفاده از APi بالا رنگ مشخصی رو از تو فرمتون میتونین حذف کنین اگه فقط هدف حذف قسمت خاصی هست نه رنگ خاصی مثلا برای بکگراند فرم :
در فرم لود me.backcolor = rgb(100,100,100)
و در کد بالا هم rgb رو به همین شکل مقدار بدین
من عکسی رو در فرم لود کردم اما قسمت های سفید عکس رو که باید نشون نده نشون میداد
چی باید کرد؟؟؟؟؟؟
عزیزم کلی رنج رنگ سفید داریم!!! ببین RGB او بخش سفیدت که میخوای حذف بشه چیه... مقادیرش رو در CLR قرار بده
مثلا در کدبالا داریم
CLR = RGB(255,255,255)