فوري و مهم !! چه جوري ميشه تو vb فرم رو اندازه ي شكل عكس كرد درواقع قسمت هاي اضافي آن را بريد.
فوري و مهم !! چه جوري ميشه تو vb فرم رو اندازه ي شكل عكس كرد درواقع قسمت هاي اضافي آن را بريد.
دوست عزيز من يك پروژه مثال دارم اگه مي خواي ميل بزار بدم برات..
چه جوری میشه فورم را اندازه یک عکس کرد و دور آن را برید.![]()
![]()
براي اين كار 3 تا مثال داشتم كه براتون آپلود كردم لينك هاشون رو ميزارم:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدراستي مطلب زير رو هم خيلي وقت پيش از يك جايي پيدا كرده بودم ولي منبعش رو الان نمي دونم(خودم امتحان نكردم)کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
فرض کنيد يک image غير مستطيلي داريد که مي خواهيد از آن بعنوان فرم برنامه تان استفاده کنيد
۱ - تصوير فرم مورد نظرتان را طراحي کرده و با فرمت bmp ذخيره کنيد . دقت نماييد که بايستي image خود را درون يک کادر مستطيلي قرار دهيد که با يک رنگ با RGB مشخص رنگ آميزي شده است :
۲ - يک فرم ويژوال بيسيک ايجاد کنيد و خاصيت BorderStyle آنرا صفر نماييد .
3 - در متد Form Load بايستي image مورد نظر را به فرمتان assign کنيد :
Me.picture=loadpicture(yourimagename)x
Me.width=Me.picture.width
Me.height=Me.picture.height
4 - سپس بايستي يک ناحيه از اين image بسازيد که نسبت به رنگ RGB اي که در بالا به آن اشاره کردم transparent باشد . اگر فرض کنيم اين رنگ ، رنگ سياه باشد ( r=0 , g=0, b=0 ) :
LRegion=MakeRgn(yourimagename,0,0,0)x
5 - حال بايستي ناحيه مشخص شده را بعنوان فرم برنامه تان قرار دهيد :
call SetWindowRgn(Me.hwnd,LRegion,True)x
6 - يک ماژوال ايجاد کنيد و خطوط زير را در آن بنويسيد :
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Declare Function MakeRgn Lib "Region.dll" (ByVal FileName As String, ByVal R As Integer, ByVal g As Integer, ByVal b As Integer) As Long
Public Declare Function DeleteRgn Lib "Region.dll" (ByVal Region As Long)x
Global lRegion As Long
7 - در متد Form Unload عبارت زير را قرار دهيد :
Call DeleteRgn(LRegion)x
نکته ۱: بوسيله روتين زير مي توانيد فرم خود را در وسط صفحه قرار دهيد :
Sub CenterForm(frm As Form)
frm.Left = (Screen.Width - frm.Width) / 2
frm.Top = (Screen.Height - frm.Height) / 2
End Sub
Last edited by R£ɀД; 07-07-2006 at 07:19.
اگه به ايميلم بفرستي ممنونت ميشم
اين منظورم نبود
يك بار ديگه ميگم
ميخوام كه اگر بقلاي عكسم سفيد است يا اگه مثلآ اون عكسم يك آيكن بقلاش ديده نشه
نمي دونم منظورم رو تونستم بگم يا نه
ميخوام فورمم رو ببرم ميخوام كه اگر بقلاي عكسم سفيد است يا اگه مثلآ اون عكسم يك آيكن بقلاش ديده نشه
همون پست بالا رو ويرايش كردم . فكر كنم مشكل ديگه حله.
بايد عكس تو فتوشاپ درست كني
با عصايه جادويي دوره عكسه تا انتخاب كن بعد پاكش كن و عكس را ذخيره كن
محض اطلاعوتون عرض کنم این جا انجمن ویژوال بیسیک هست نه فوتوشاپ.نوشته شده توسط hippo
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)