View Full Version : مشکل با دکمه maximized
amir_masoud
یک شنبه 13 دی 1383, 11:36 صبح
سلام
من از قطعه کد زیر برای غیر فعال ساختن دکمه maximized در فرم استفاده کردم ولی تویه ویندوز 98 جواب می ده و دکمه رو غیر فعال می کنه ولی تویه ویندوز xp این کار رو انجام نمی ده
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Boolean) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu 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 DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Sub EFF_DisableMenuBarButton(ByVal Form_hWnd As Long, MenuNumber As Long)
Dim hMenu As Long
Dim nCount As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
hMenu = GetSystemMenu(Form_hWnd, False)
nCount = GetMenuItemCount(hMenu)
RemoveMenu hMenu, MenuNumber, MF_REMOVE Or MF_BYPOSITION
DrawMenuBar Form_hWnd
End Sub
تویه فرم لود تابع رو صدا می زنم به همراه 4
ممنون می شم منو راهنمایی کنید
*** عنوان اصلاح شد (مسعود.غ) :sad2: ***
Behrouz_Rad
یک شنبه 13 دی 1383, 11:50 صبح
Try This Code
in a Module
Public Const SC_MAXIMIZE = &HF030&
Public Const MF_BYCOMMAND = &H0
Public Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DeleteMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
in a Form
Public Sub DisableXbutton(ByVal frmHwnd As Long)
Dim hMenu As Long
hMenu = GetSystemMenu(frmHwnd, 0&)
If hMenu Then
Call DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
DrawMenuBar (frmHwnd)
End If
End Sub
Private Sub Form_Load()
DisableXbutton (Me.hwnd)
End Sub
Good Luck
:wise1:
vbprogramer
یک شنبه 13 دی 1383, 14:32 عصر
Try This Code
آقای راد این کد کار نکرد یعنی دکمه maximize رو غیر فعال نکرد و فقط کاربر نمی تونه از طریق دوبار کلیک روی نوار عنوان فرم رو maximize کنه
دوست عزیز چرا از خاصیت Maxbutton خود فرم استفاده نمی کنید ؟
amir_masoud
یک شنبه 13 دی 1383, 23:09 عصر
ممنون
دوست عزیز این خاصیت برای فرمهای mdi بصورت معمول و از طریق ÷نجره تنظیمان وجود نداره . :(
vbprogramer
دوشنبه 14 دی 1383, 07:29 صبح
آهان فهمیدم :موفق:
Behrouz_Rad
دوشنبه 14 دی 1383, 08:10 صبح
آها واسه فرم های MDI فرق می کنه:
in a Module
Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Const SC_MAXIMIZE = &HF030&
Public Const MF_BYCOMMAND = &H0&
in a Form
Private Sub Form_Load()
Dim hSysMenu As Long
hSysMenu = GetSystemMenu(hWnd, False)
RemoveMenu hSysMenu, SC_MAXIMIZE, MF_BYCOMMAND
End Sub
:wink: :wise1:
amir_masoud
چهارشنبه 16 دی 1383, 18:26 عصر
سلام
من با این قطعه کد هم امتحان کردم ولی جواب نمی ده
Ahmad-VB
پنج شنبه 17 دی 1383, 09:07 صبح
این کد مشکلتون رو حل می کنه !
'************************************************* *************
' Program: Disable Max and Min Buttons on a Mdi Form Sample
' Author: Sorcerer
' Build Date: 11/08/2004
'
' Desription: I looked all over PSC and other sites to find out how
' to do this finally found it. So I decided I would write
' a demo on how to do it. I do not know who was the original
' author of this code.
'
'
' Inputs: none
'
' ************************************************** ***************
'Remove this code if you do not want to disable the Min Button
Private Const WS_MINIMIZEBOX = &H20000 'Disables the Minimize Button
'Remove this code if you do not want to disable the Max Button
Private Const WS_MAXIMIZEBOX = &H10000 'Disables Maximize Button
Private Const GWL_STYLE = (-16)
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 GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Sub MDIForm_Load()
Dim L As Long
L = GetWindowLong(Me.hwnd, GWL_STYLE)
'Remove this code if you do not want to disable the Min Button
' L = L And Not (WS_MINIMIZEBOX) 'Disables the Minimize Button
'Remove this code if you do not want to disable the Min Button
L = L And Not (WS_MAXIMIZEBOX) 'Disables Maximize Button
L = SetWindowLong(Me.hwnd, GWL_STYLE, L)
End Sub
hbi
پنج شنبه 17 دی 1383, 19:23 عصر
کد زیر را در یک ماژول قرار بده
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Boolean) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu 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 DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Public Sub EFF_DisableMenuBarButton(ByVal Form_hWnd As Long, MenuNumber As Long)
Dim hMenu As Long
Dim nCount As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
hMenu = GetSystemMenu(Form_hWnd, False)
nCount = GetMenuItemCount(hMenu)
RemoveMenu hMenu, MenuNumber, MF_REMOVE Or MF_BYPOSITION
DrawMenuBar Form_hWnd
End Sub
حالا در لود mdi form کد زیر را قرار بده
EFF_DisableMenuBarButton Me.hWnd, 0
'Restore = 0
'Move = 1
'Size = 2
'Minimize = 3
'Maximize = 4
هر دکمه را که بخواهی غیر فعال میکند
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.