PDA

View Full Version : از کار انداختن دکمه X یا کلوز فورم



unforgiven
دوشنبه 18 مهر 1384, 05:14 صبح
سلام دوستان
من در فرمم برای اینکه اطلاعات وارد شده ذخیره نشن در توی دکمه انصراف از کنسل آپ دیت استفاده کردم
ولی وقتی روی دکمه X کلیک میشه اطلاعات ذخیره میشن
می خوام این دکمه از کار بیفته منظورم اینه که هیچ عملی انجام نده نه دیسی بل بشه
اگه راهی هست که این مشکل برطرف بشه ممنون میشم بگید
که دیگه دکمه X هم سرجاش باشه
با شپاس

PalizeSoftware
دوشنبه 18 مهر 1384, 12:11 عصر
سلام
از این کد استفاده کن


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 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

Private Sub Form_Load()
DisableX Me.hwnd
End Sub

'*----------------------------------------------------------*
'* Disables the close button ('X') on form. *
'*----------------------------------------------------------*
Private Sub DisableX(tHwnd As Long)
Dim hMenu As Long, nCount As Long
Const MF_BYPOSITION = &H400&
Const MF_DISABLED = &H2&

'Get handle to system menu
hMenu = GetSystemMenu(tHwnd, 0)

'Get number of items in menu
nCount = GetMenuItemCount(hMenu)

'Remove last item from system menu (last item is 'Close')
RemoveMenu hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION

'Get number of items in menu
nCount = GetMenuItemCount(hMenu)

RemoveMenu hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION

'Redraw menu
DrawMenuBar tHwnd

End Sub

ehsan_ansaripoor
دوشنبه 18 مهر 1384, 17:22 عصر
دوست عزیز اگر از شی Data استفاده می کنی فقط کافیه کد زیر را داخل رویداد Validate شی Data وارد کنی تا CancelUpdate جواب بده


Private Sub Data1_Validate(Action As Integer, Save As Integer)
Save = False
End Sub

Bithiah
سه شنبه 19 مهر 1384, 09:38 صبح
یه راه دیگه برای اینکه نذاری فرمت Unload بشه اینه که توی رویداد Unload فرمت مقدار Cancel رو بذاری یه مقدار غیر صفر، یعنی اینجوری:
Private Sub Form_Unload(Cancel As Integer)

Cancel = 1


End Sub

unforgiven
چهارشنبه 20 مهر 1384, 08:10 صبح
سلام دوستان
راه حل آقا احسان و آقا bithiah جواب داد
از همتون متشکرم
آقای پالیز از شما هم متشکرم

Hamedm
چهارشنبه 20 مهر 1384, 08:34 صبح
سلام

اگه نحوه کارکرد کدی که جناب PalizeSoftware (member.php?u=5737) قرار دادند رو میخواهید بدانید، مقاله های تاپیک زیر رو مطالعه فرمائید.
http://www.barnamenevis.org/forum/showthread.php?t=25723

در پناه حق موفق باشید و پرتوان

Bithiah
چهارشنبه 20 مهر 1384, 10:21 صبح
خواهش می کنم ولی ببینم کی گفته من آقاام؟؟؟!

unforgiven
پنج شنبه 21 مهر 1384, 08:08 صبح
سلام
ببخشید خانم bithiah
من نمی دونستم شما خانوم تشریف دارید
اسمتون مشخص نمی کرد
به هر حال متاسفم
موفق باشید