PDA

View Full Version : حذف قسمت های اضافی فرم



omidparkour
جمعه 02 فروردین 1392, 20:05 عصر
سلام
من داخل فرمم یک عکس گذاشتم و میخوام مثلا رنگ سفید اون عکس نمایش داده نشه(مثلا یک دایره ای که داخل دایره خاکستری هست و بیرون دایره سفید و این عکس رو داخل فرم میزارم و فرمم دایره ای شکل بشه)

لطفا راهنمایی کنین

SlowCode
جمعه 02 فروردین 1392, 21:36 عصر
سلام
این فایل رو به پروژت اضافه کن بعد خاصیت MaskColor رو روی رنگ سفید تنظیم کن.

omidparkour
جمعه 02 فروردین 1392, 22:57 عصر
شرمنده دقیقا متوجه نشدم که باید چی کنم؟؟؟؟

mehran901
شنبه 03 فروردین 1392, 10:45 صبح
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 رو به همین شکل مقدار بدین

mahdivita
شنبه 03 فروردین 1392, 12:32 عصر
من عکسی رو در فرم لود کردم اما قسمت های سفید عکس رو که باید نشون نده نشون میداد
چی باید کرد؟؟؟؟؟؟

mehran901
شنبه 03 فروردین 1392, 12:41 عصر
عزیزم کلی رنج رنگ سفید داریم!!! ببین RGB او بخش سفیدت که میخوای حذف بشه چیه... مقادیرش رو در CLR قرار بده
مثلا در کدبالا داریم
CLR = RGB(255,255,255)