/ در آموزش ویژوالبیسیک, اشتراک رایگان, ویژوالبیسیک / توسط
آخرین زمان ویرایش:

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۲۰

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید

نامرئی کردن قسمتهای اضافی فرم (برای گذاشتن اسکین خوبه)

این کد خیلی کاربردیه، حتماً به دردتون مبخوره. این کد باعث میشه که گوشه ها و قسمتهای اضافی فرم حذف بشه و فقط جاهایی که شما میخواید، قابل رویت باشه. مانند اسکین های Windows Media Player که بسیار زیباست.

یک پروژه جدید باز کنید و داخل فرمتون یک شئ Shape بذارید و کد زیر رو تو قسمت جنرال فرمتون کپی کنید :

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(1, 1, 1)

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

 

طرز کار : قسمتهای مشکی رنگ فرم رو حذف میکنه به همین سادگی حالا اگه بر حسب اتفاق شما مجبورید که از رنگ مشکی به عنوان پس زمینه فرمتون استفاده کنید باید در اون قسمتی که رنگ پس زمینه فرم تعیین میشه (به کد نگاه کنید) رنگ سفبد رو تعیین کنید یعنی Me.BackColor = RGB (255, 255, 255) به همین سادگی. در واقع این کد رنگی رو که شما تعیین میکنید رو از هر جای فرم حذف میکنه حتی اگه اون رنگ در وسط فرم باشه که در این صورت وسط فرم خالی میشه و هر چیزی که در پشت فرم قرار داره رو میشه از اون سوراخ دید.

شفاف کردن فرم به صورت شیشه ای و مات

یک پروژه جدید باز کنید و تو قسمت جنرال فرمتون کدهای زیر رو کپی کنید :

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” (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Sub Command1_Click()

Dim Retval As Long

Retval = GetWindowLong(hWnd, -20)

Retval = Retval Or 524288

SetWindowLong hWnd, -20, Retval

SetLayeredWindowAttributes hWnd, 0, Val(Text1.Text), 2

End Sub

Private Sub Form_Load()

Text1.Text = 100

Command1_Click

End Sub

 

تو TextBox یک عدد از ۰ تا ۲۵۵ وارد کنید و کلید Command1 رو بزنید و شاهد شفاف شدن فرم باشید. فقط توجه داشته باشید که اگه از اعداد پایین مثل ۱ استفاده کنید فرمتون تقریباً نامرئی میشه پس بهتون پیشنهاد میکنم تا حد امکان از اعداد بالای ۵۰ استقاده کنید. موفق باشید.

نوشته های مشابه

مجموعه سورس کدهای ویژوالبیسیک ۶ قسمت ۱۹

جهت مطالعه و دسترسی به سورس ها به ادامه مطلب مراجعه نمائید (بیشتر…)

دانلود سورس زمین فوتبال سه بعدی

دانلود سورس در ادامه مطلب (بیشتر…)

 کانال تلگرام داده باران شارژ آنلاین

نظری بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

8 + شش =