powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как заблокировать кнопку Х
8 сообщений из 8, страница 1 из 1
Как заблокировать кнопку Х
    #32539356
Фотография Лёшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди добрые подскажите пожалуйста, как кнопочке Х на форме присвоить значение x.enabled = false
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539366
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может попробовать так?
Код: plaintext
х.Enabled=False

:)

Magnus
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539376
Фотография Лёшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имею ввиду ту Х, которая находится в углу формы.
Или как, присвоить ей какое-то событие?
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539389
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аааа!
Ну так и говори!



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
Option Explicit

Private Const SC_CLOSE As Long = &HF060&
Private Const MIIM_STATE As Long = &H1&
Private Const MIIM_ID As Long = &H2&
Private Const MFS_GRAYED As Long = &H3&
Private Const WM_NCACTIVATE As Long = &H86

Private Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
End Type

Private Declare Function GetSystemMenu Lib "user32" ( _
    ByVal hWnd As Long, ByVal bRevert As Long) As Long

Private Declare Function GetMenuItemInfo Lib "user32" Alias _
    "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, _
    ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long

Private Declare Function SetMenuItemInfo Lib "user32" Alias _
    "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, _
    ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long

Private Declare Function SendMessage Lib "user32" Alias _
    "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long

Private Declare Function IsWindow Lib "user32" _
    (ByVal hWnd As Long) As Long

 '*******************************************************************************
 
 ' Enables / Disables the close button on the titlebar and in the system menu
 
 ' of the form window passed.
 
 '-------------------------------------------------------------------------------
 
 ' Return Values:
 
 '
 
 '    0  Close button state changed succesfully / nothing to do.
 
 '   -1  Invalid Window Handle (hWnd argument) Passed to the function
 
 '   -2  Failed to switch command ID of Close menu item in system menu
 
 '   -3  Failed to switch enabled state of Close menu item in system menu
 
 '
 
 '-------------------------------------------------------------------------------
 
 ' Parameters:
 
 '
 
 '   hWnd    The window handle of the form whose close button is to be enabled/
 
 '           disabled / greyed out.
 
 '
 
 '   Enable  True if the close button is to be enabled, or False if it is to
 
 '           be disabled / greyed out.
 
 '
 
 '-------------------------------------------------------------------------------
 
 ' Example:
 
 '
 
 ' Add a form window to your project, and place a button on the form. Add the
 
 ' following in the form's code window:
 
 '
 
 '    Option Explicit
 
 '
 
 '    Private m_blnCloseEnabled As Boolean
 
 '
 
 '    Private Sub Form_Load()
 
 '        m_blnCloseEnabled = True
 
 '        Command1.Caption = "Disable"
 
 '    End Sub
 
 '
 
 '    Private Sub Command1_Click()
 
 '        m_blnCloseEnabled = Not m_blnCloseEnabled
 
 '        EnableCloseButton Me.hwnd, m_blnCloseEnabled
 
 '
 
 '        If m_blnCloseEnabled Then
 
 '            Command1.Caption = "Disable"
 
 '        Else
 
 '            Command1.Caption = "Enable"
 
 '        End If
 
 '    End Sub
 
 '
 
 '-------------------------------------------------------------------------------
 

Public Function EnableCloseButton(ByVal hWnd As Long, Enable As Boolean) _
                                                                As Integer
    Const xSC_CLOSE As Long = - 10 

     ' Check that the window handle passed is valid
 
    
    EnableCloseButton = - 1 
    If IsWindow(hWnd) =  0  Then Exit Function
    
     ' Retrieve a handle to the window's system menu
 
    
    Dim hMenu As Long
    hMenu = GetSystemMenu(hWnd,  0 )
    
     ' Retrieve the menu item information for the close menu item/button
 
    
    Dim MII As MENUITEMINFO
    MII.cbSize = Len(MII)
    MII.dwTypeData = String( 80 ,  0 )
    MII.cch = Len(MII.dwTypeData)
    MII.fMask = MIIM_STATE
    
    If Enable Then
        MII.wID = xSC_CLOSE
    Else
        MII.wID = SC_CLOSE
    End If
    
    EnableCloseButton = - 0 
    If GetMenuItemInfo(hMenu, MII.wID, False, MII) =  0  Then Exit Function
    
     ' Switch the ID of the menu item so that VB can not undo the action itself
 
    
    Dim lngMenuID As Long
    lngMenuID = MII.wID
    
    If Enable Then
        MII.wID = SC_CLOSE
    Else
        MII.wID = xSC_CLOSE
    End If
    
    MII.fMask = MIIM_ID
    EnableCloseButton = - 2 
    If SetMenuItemInfo(hMenu, lngMenuID, False, MII) =  0  Then Exit Function
    
     ' Set the enabled / disabled state of the menu item
 
    
    If Enable Then
        MII.fState = (MII.fState Or MFS_GRAYED)
        MII.fState = MII.fState - MFS_GRAYED
    Else
        MII.fState = (MII.fState Or MFS_GRAYED)
    End If
    
    MII.fMask = MIIM_STATE
    EnableCloseButton = - 3 
    If SetMenuItemInfo(hMenu, MII.wID, False, MII) =  0  Then Exit Function
    
     ' Activate the non-client area of the window to update the titlebar, and
 
     ' draw the close button in its new state.
 
    
    SendMessage hWnd, WM_NCACTIVATE, True,  0 
    
    EnableCloseButton =  0 
    
End Function



Magnus
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539402
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попроще:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYCOMMAND = &H0&
Private Const SC_CLOSE = &HF060

Private Sub Form_Load()
    Dim hMenuHandle As Long
    hMenuHandle = GetSystemMenu(hwnd,  0 &)
    If (hMenuHandle <>  0 ) Then DeleteMenu hMenuHandle, SC_CLOSE, MF_BYCOMMAND
End Sub
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539410
Фотография Лёшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А она чего-то не работает. Т.е код не работает
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539413
Фотография Лёшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, Магнус, второй код оказался удачнее
...
Рейтинг: 0 / 0
Как заблокировать кнопку Х
    #32539712
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, код РА работает. По крайней мере у меня.

Magnus
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как заблокировать кнопку Х
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]