الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اقوم بالغاء قائمه textBox

مغلق
بدأه hythamzero في 24 يوليو 2007 · 2 رد · 532 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكنني الغاء قائمه textBox

كما هو بالصوره

عند النقر علي الزر الايمن للماوس تظهر علي textBox تظهر القائمه فكيف يمكن تعطيل الغاء هذه الرسالهاو عدم اظهارها

untitled.bmp

#2

عن طريق الsubclassing عشان نعترض الرسالة WM_CONTEXTMENU

هنا

#3

ده Module كنت عامله قبل كده , لكن يستخدم Subclasser عادى و بالتالى لا يمكن أستعماله سوى مع Textbox عادى , لو ناوى على أكتر من كده أستعمل الـ Self Sub من موقع PSC

'Module ProtectAgainstCopy for textboxes by Mohammed Sayed.
Option Explicit

Private Const GWL_WNDPROC As Long = (-4)
Private Const WM_RBUTTONUP As Long = &H205
Private Const WM_CHAR As Long = &H102
Private Const WM_GETTEXT As Long = &HD

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 Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private m_lWndProc As Long
Private OriginalWndProc As Long

Public Sub ProtectFromCopy(hwnd As Long)
m_lWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
OriginalWndProc = hwnd
End Sub

Public Sub UnProtectFromCopy(hwnd As Long)
SetWindowLong hwnd, GWL_WNDPROC, m_lWndProc
End Sub

Private Function WindowProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If Msg = WM_RBUTTONUP Then
	WindowProc = 0
	Exit Function
End If

If Msg = WM_CHAR Then
	Select Case wParam
		Case 3, 24
			WindowProc = 0
			Exit Function
	End Select
End If

If Msg = WM_GETTEXT Then
	WindowProc = 0
	Exit Function
End If

WindowProc = CallWindowProc(m_lWndProc, hwnd, Msg, wParam, lParam)
End Function

هذا الموضوع مغلق.

مواضيع مشابهة