View Full Version : سوال: MIDI form تغییر BorderStyle کمک کنید
digi_tal
جمعه 23 مرداد 1388, 18:36 عصر
با سلام
لطفا اگه کسی در مورد تغییر در نمایش فرم های ام دی ای دره برام بنویسه
من میخوام یه فرم با خاصیت MDIForm را به حال None نمایش بدم یعنی بدون کادر پنجره روشی هست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:عصبانی++:: یج:
Babak.Hassanpour
یک شنبه 25 مرداد 1388, 18:40 عصر
سلام
بفرما عزیز
توی خود فرم MDI بریز:
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 Const GWL_STYLE = (-16)
Private Const WS_BORDER = &H800000
Private Const WS_CAPTION = &HC00000
Private Sub MDIForm_Load()
Dim lStyle As Long
lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong
' lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_CAPTION
lStyle = lStyle And WS_BORDER And Not WS_CAPTION
Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)
End Sub
همونطور که میبینی lStyle چند تا مد داره.هرکدوم رو خواستی ست کن
mirparsa
شنبه 21 شهریور 1388, 18:32 عصر
برای اینکه Border Style تو MDIForm بصورت Fix بشه چیکار میشه کرد؟
Babak.Hassanpour
شنبه 21 شهریور 1388, 18:45 عصر
این کد اصلاح شده برای خواسته شما عزیز جان
Option Explicit
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Const WS_CAPTION = &HC00000
Private Const WS_THICKFRAME = &H40000
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 Const WS_BORDER = &H800000
Public Sub EnableResizing(Form As Form, Enable As Boolean)
Dim style As Long
style = GetWindowLong(Form.hwnd, GWL_STYLE)
If Enable Then
style = style Or WS_THICKFRAME
Else
style = style And Not WS_THICKFRAME
End If
style = SetWindowLong(Form.hwnd, GWL_STYLE, style)
End Sub
Private Sub MDIForm_Load()
Show
EnableResizing Me, False
Dim lStyle As Long
lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong
lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_CAPTION
' lStyle = lStyle And WS_BORDER And Not WS_CAPTION
Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)
End Sub
mirparsa
دوشنبه 23 شهریور 1388, 01:13 صبح
حالا یک مشکل جدید دارم :لبخند:
دکمه MDIForm ، Maximized میشه غیرفعال کرد . با این کدی که دادیدResize نمیشه ولی این بزرگ شدن فرم کارو خراب می کنه .:متفکر:
در واقع می خوام MaxButton براش False بشه .
Babak.Hassanpour
دوشنبه 23 شهریور 1388, 19:51 عصر
این کد اصلاح شده برای خواسته جدید شما(قسمت بولد شده)
Option Explicit
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Const WS_CAPTION = &HC00000
Private Const WS_THICKFRAME = &H40000
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 Const WS_BORDER = &H800000
Public Sub EnableResizing(Form As Form, Enable As Boolean)
Dim style As Long
style = GetWindowLong(Form.hwnd, GWL_STYLE)
If Enable Then
style = style Or WS_THICKFRAME
Else
style = style And Not WS_THICKFRAME
End If
style = SetWindowLong(Form.hwnd, GWL_STYLE, style)
End Sub
Private Sub MDIForm_Load()
Show
EnableResizing Me, False
Dim lStyle As Long
lStyle = GetWindowLong(MDIForm1.hwnd, GWL_STYLE) 'Get's the WindowLong
' lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_BORDER
' lStyle = lStyle And Not WS_CAPTION
' lStyle = lStyle And WS_BORDER And Not WS_CAPTION
Call SetWindowLong(MDIForm1.hwnd, GWL_STYLE, lStyle)
Dim st As Long
st = GetWindowLong(Me.hwnd, GWL_STYLE)
st = (Not WS_MINIMIZEBOX) And st
st = (Not WS_MAXIMIZEBOX) And st
SetWindowLong Me.hwnd, GWL_STYLE, st
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.