View Full Version : کمرنگ کردن فرم
alizanganeh
دوشنبه 30 مرداد 1391, 15:14 عصر
سلام
میخوام با زدن یک دکمه فرم کمرنگ بشه یا همون transparency کم بشه
ممنون
the king
دوشنبه 30 مرداد 1391, 15:33 عصر
سلام
میخوام با زدن یک دکمه فرم کمرنگ بشه یا همون transparency کم بشه
ممنون
50 درصد یا هر مقدار دیگری :
Private Const GWL_EXSTYLE As Long = -20
Private Const LWA_ALPHA As Long = &H2
Private Const WS_EX_LAYERED As Long = &H80000
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex 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
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Form_Load()
Dim opacity As Integer
opacity = 50
SetWindowLong hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hWnd, 0, opacity * 2.55, LWA_ALPHA
End Sub
alizanganeh
دوشنبه 30 مرداد 1391, 17:34 عصر
خیلی ممنون
ولی فرم من MDI هستش و فرم هایی که میخوام منرنگ بشن mdi-Child هستش
چه کنم واسه این ؟
چون وقتی فرم رو mdi-child میکنم دیگه خاصیت کمرنگ کردن رو نداره
ممنون
the king
دوشنبه 30 مرداد 1391, 17:55 عصر
خیلی ممنون
ولی فرم من MDI هستش و فرم هایی که میخوام منرنگ بشن mdi-Child هستش
چه کنم واسه این ؟
چون وقتی فرم رو mdi-child میکنم دیگه خاصیت کمرنگ کردن رو نداره
ممنون
اون خاصیت شفاف کردن فرم ویژگی فرم های Top Level ئه، نه فرمی که داخل یک فرم دیگه نشون داده میشه.
alizanganeh
دوشنبه 30 مرداد 1391, 18:00 عصر
اون خاصیت شفاف کردن فرم ویژگی فرم های Top Level ئه، نه فرمی که داخل یک فرم دیگه نشون داده میشه.
خب پس من برای این قضیه چیکار کنم؟
راهی نداره ؟
Mr'Jamshidy
سه شنبه 31 مرداد 1391, 00:44 صبح
داره اما نه استاندارد
میتونی از پشت فرم عکس و خود فرم عکس بگیری و با هم ادغامشون کنی و روی فرم ترسیم کنی
نمونه هم زیاده (البته باید جدا جدا دنبال نمونه باشی)
alizanganeh
سه شنبه 31 مرداد 1391, 01:10 صبح
داره اما نه استاندارد
میتونی از پشت فرم عکس و خود فرم عکس بگیری و با هم ادغامشون کنی و روی فرم ترسیم کنی
نمونه هم زیاده (البته باید جدا جدا دنبال نمونه باشی)
این که خیلی مشکل و وقت گیره
در نتیجه فرم mdi-child رو نمیشه کمرنگ کرد
اوکی ممنون
the king
سه شنبه 31 مرداد 1391, 01:24 صبح
داره اما نه استاندارد
میتونی از پشت فرم عکس و خود فرم عکس بگیری و با هم ادغامشون کنی و روی فرم ترسیم کنی
نمونه هم زیاده (البته باید جدا جدا دنبال نمونه باشی)
اون که میشه صرفا عکس فرم، کنترل های داخل فرم که دیگه کار نمی کنه. در ضمن Scrollbar های فرم اصلی
نسبت به جابجایی فرم های فرزند تنظیم می شوند، نه جابجایی اون ترسیم داخل فرم.
alizanganeh
سه شنبه 31 مرداد 1391, 02:28 صبح
اون که میشه صرفا عکس فرم، کنترل های داخل فرم که دیگه کار نمی کنه. در ضمن Scrollbar های فرم اصلی
نسبت به جابجایی فرم های فرزند تنظیم می شوند، نه جابجایی اون ترسیم داخل فرم.
آقای king بی زحمت نتیجه ی نهایی رو بگو به ما
میشه برای mdi-child همینکار رو که بدون دردسر و کار اضافی باشه انجام داد یا نه؟
ممنون
the king
سه شنبه 31 مرداد 1391, 02:44 صبح
آقای king بی زحمت نتیجه ی نهایی رو بگو به ما
میشه برای mdi-child همینکار رو که بدون دردسر و کار اضافی باشه انجام داد یا نه؟
ممنون
حتی با دردسر هم کار خیلی مشکلی یه، چون از نظر فنی اگه امکان اش بود خود مایکروسافت قابلیت اش رو
در پنجره های MDI Client غیر فعال نمی کرد. اینجور قابلیت نیمه شفاف در WPF کامل پیاده سازی شده
اما در فرم های ویندوز خیلی ناقص و ابتدایی یه. تقریبا باید تمامی قابلیت های MDI Parent / Client و کنترل های داخلش
باز نویسی بشه که کار بزرگی یه.
برای برنامه نویس برنامه هایی که یکسره از فرم گرفته تا کنترل هاشون اختصاصی و غیر استاندارد اند
(مثل Adobe Photoshop و Xara Designer Pro و ACDSee Pro) اضافه کردن همچین قابلیتی به مراتب ساده تر
از اینه که بخواهید بلایی سر فرم های MDI Client و کنترل های استاندارد ویندوز بیاورید که داخل یک فرم
دیگه قرار بگیرند اما شفاف شوند.
alizanganeh
سه شنبه 31 مرداد 1391, 11:50 صبح
آقا دمت گرم
حیف که نشد
ممنون از همه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.