PDA

View Full Version : غیر فعال کردن دکمه maximize در فرمهای mdi



amir_masoud
دوشنبه 02 آذر 1383, 00:06 صبح
سلام
به چه صورت می شه دکمه maximize روی فرمهای mdiform رو غیر فعال کرد .
با تشکر

unforgiven
چهارشنبه 23 اسفند 1385, 17:08 عصر
وقتی میشه دکمه X رو غیر فعال کرد چطور نمیشه دکمه ماکزیمایز رو غیر فعال کرد ؟
یعنی راهی وجود نداره؟

__H2__
چهارشنبه 23 اسفند 1385, 17:22 عصر
وقتی میشه دکمه X رو غیر فعال کرد چطور نمیشه دکمه ماکزیمایز رو غیر فعال کرد ؟
یعنی راهی وجود نداره؟

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

evilboy
پنج شنبه 24 اسفند 1385, 08:44 صبح
این کد رو یکی از بچه های همینجا برام گذاشته. این کد دکمه maximize رو غیرفعال و از بزرگ و کوچک شدن فرم MDI جلوگیری می کند


Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) 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 Const GWL_STYLE = (-16)
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const MF_BYCOMMAND = &H0&
Private Const MF_BYPOSITION = &H400&
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long



Public Sub DisableMax(f As MDIForm)
Dim Max As Long
Max = GetWindowLong(f.hwnd, GWL_STYLE)
Max = Max And Not (WS_MAXIMIZEBOX)
Max = SetWindowLong(f.hwnd, GWL_STYLE, Max)
End Sub