PDA

View Full Version : حرفه ای: سبک ترین و راحت ترین روش ساخت فرم شیشه ای



arash020
پنج شنبه 16 شهریور 1391, 04:24 صبح
سلام
این پروژه ساخت فرم شیشه ای حالت ویندوز 7 هستش...
چرا توی vb6 کار میکنه
ولی توی vb.net خطا میده ؟؟؟؟!!!!
لطفا کمک کنید.با تشکر

arash020
یک شنبه 19 شهریور 1391, 00:08 صبح
کسی تابه حال این کارو نکرده؟؟؟!!! ای بابا...!!!

WorldVbMan
یک شنبه 19 شهریور 1391, 06:00 صبح
سلام

تو دات نت فرم شیشه ای تنها با ست کردن خصلت Opacity فرم به یک درصد که مد نظر شماست انجام میشه و کار دیگه ای هم نیاز نیست انجام بشه.

arash020
جمعه 24 شهریور 1391, 00:58 صبح
این چه جوابی بود!!!!واقعا که؟!
یکــ ــ ــکم دقت بد نیست...
فرم شیشه ای Areo منظورمه
ویندوز 7

حالا گرفتید؟!

Hybrid
جمعه 24 شهریور 1391, 01:02 صبح
این چه جوابی بود!!!!واقعا که؟!
یکــ ــ ــکم دقت بد نیست...
فرم شیشه ای Areo منظورمه
ویندوز 7


ببین این تاپیک (http://barnamenevis.org/showthread.php?360676-%D9%81%D8%B1%D9%85-%D8%B4%DB%8C%D8%B4%D9%87-%D8%A7%DB%8C-Aero) به کارت میاد ،

arash020
یک شنبه 26 شهریور 1391, 01:41 صبح
مرسی ولی اون تاپیک رو خوندم...
می خواستم پروژه خودم رو به نتیجه برسونم
اگه یکی پیدا بشه واقعا سوالمو بخونه , اون فایل رو ببینه و اگه بلد باشه اشکالشو بگیره و مطرح کنه خیلی ممنون میشم .

arash020
جمعه 31 شهریور 1391, 22:32 عصر
کسی میتونه کد vb6 زیر رو به vb.net تبدیل کنه؟؟؟!!! لطفا...
این کد فرم رو به حالت شیشه ای تبدیل میکنه.
(تبدیل خودم خطا نمیده ولی کار هم نمیکنه...!)

کد داخل ماژول:

Option Explicit

Private Const LWA_COLORKEY As Long = &H1
Private Const GWL_EXSTYLE As Long = (-20)
Private Const WS_EX_LAYERED As Long = &H80000
Private Const WS_EX_TRANSPARENT As Long = &H20&
Private Const LWA_ALPHA As Long = &H2&

Private Type tRect
m_Left As Long
m_Right As Long
m_Top As Long
m_Buttom As Long
End Type

Private Declare Function apiApplyGlass Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As Long, rect As tRect) As Long
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 crey As Long, ByVal bAlpha As Byte, ByVal dwflags As Long) As Long

Public Function ApplyAero(frm As Form, tColor As Long) As Long
Dim lOldStyle As Long

lOldStyle = GetWindowLong(frm.hWnd, GWL_EXSTYLE)
SetWindowLong frm.hWnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED
SetLayeredWindowAttributes frm.hWnd, tColor, 0, LWA_COLORKEY
frm.BackColor = tColor

Dim GRect As tRect
Dim lngReturn As Long

GRect.m_Buttom = -1
GRect.m_Left = -1
GRect.m_Right = -1
GRect.m_Top = 0

lngReturn = apiApplyGlass(frm.hWnd, GRect)

ApplyAero = lngReturn
End Function


و روش فراخوانی:
در رویداد لود شدن فرم:::

ApplyAero Me, RGB(1, 1, 1)

با تشکر

arash020
جمعه 07 مهر 1391, 02:23 صبح
سلام
جــــوینــــده یــــابنـــده سـت ...

کد بدون خطا و کامل ساخت فرم شیشه ای ساده:

Imports System.Runtime.InteropServices

Public Class Form1

<DllImport("dwmapi.dll")> Public Shared Function DwmExtendFrameIntoClientArea(ByVal hWnd As IntPtr, ByRef pMarinset As MARGINS) As Integer
End Function
<StructLayout(LayoutKind.Sequential)> _
Public Structure MARGINS
Public Left As Integer
Public Right As Integer
Public Top As Integer
Public Bottom As Integer
End Structure

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
BackColor = Color.Black
Dim Margins As MARGINS = New MARGINS
Dim hwnd As IntPtr = Handle
Margins.Left = -1
Margins.Top = -1
Margins.Right = -1
Margins.Bottom = -1
Dim result As Integer = DwmExtendFrameIntoClientArea(hwnd, Margins)
End Sub

End Class

arash020
سه شنبه 11 مهر 1391, 04:29 صبح
سلام از تشکر شما دوستان کمال سپاس گذاری رو دارم.

می خواستم بگم
توی ساخت فرم شیشه ای با روش استفاده از افزونه خود مایکروسافت مشکل نسبتا بزرگی وجود داره
مشکلش اینه که نمیشه در زمان اجرا محتوا(متن) Lable ها رو تغییر داد...!!!

روش خودم بهتره
مگه اینکه کد سایه زدن lable توی افزونه مایکروسافت رو غیرفعال کنیم.(پس بی فایده ست.)
:لبخند::چشمک::لبخند:

hadgph
سه شنبه 11 مهر 1391, 11:07 صبح
سلام
جــــوینــــده یــــابنـــده سـت ...

کد بدون خطا و کامل ساخت فرم شیشه ای ساده:


ممنون از اینکه منو هم واداشتی یه فرم شیشه ای فک کنم
ولی این فرم یه اشکال کوچیک داره! اونم استفاده از رنگ سیاه برای پس زمینه اس! که باعث تمام رنگهای فونتها و.. پاک بشه. بهتره از رنگی استفاده کنی که در فرمت استفاده نمی کنی.
کد به شکل زیر مثلا اصلاح بشه بهتر جواب میده... در این حالت باتن ها و لیبلها و... در امان می مونند :چشمک:

الان دنبال این میگردم که دور لیبلها رو هاله بیاندازم! در این مورد چیزی پیدا کردید خبر بدین :لبخند:

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.BackColor = Color.Blue
Me.TransparencyKey = Color.Blue
Dim mg As MARGINS = New MARGINS
mg.cxLeftWidth = -1
mg.cxRightWidth = -1
mg.cyTopHeight = -1
mg.cyButtomheight = -1
'set all value -1 to apply glass effect to the all of visible window

Try
DwmExtendFrameIntoClientArea(Me.Handle, mg)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub

unknow-os
سه شنبه 11 مهر 1391, 11:39 صبح
من فرم شیشه ای areo ساختم
خواستی پ خ بده