บทความนี้อธิบายวิธีการใช้ฟังก์ชันต่างๆ เช่น เมนูคลิกขวา คัดลอก และวางในกล่องข้อความที่มีการป้องกัน VB ฟังก์ชันนี้เป็นการปิดใช้ฟังก์ชันคลิกขวาของกล่องข้อความ ทำให้ฟังก์ชันคลิกขวาของเมาส์ไม่ถูกต้อง เป็นฟังก์ชันเชิงปฏิบัติประเภทหนึ่งที่ใช้กันทั่วไปมาก
รหัสโมดูลฟังก์ชันเฉพาะมีดังนี้:
'=================================================' = ========='|. ชื่อโมดูล|. TextBoxDisableAbility'|. ==== ================================= ตัวเลือก ExplicitPrivate ประกาศฟังก์ชัน SetWindowText Lib "user32" นามแฝง " SetWindowTextA" (ByVal hwnd ตราบใดที่ ByVal lpString As String) ตราบใดที่ LongPrivate ประกาศฟังก์ชัน CallWindowProc Lib "user32" นามแฝง "CallWindowProcA" (ByVal lpPrevWndFunc ตราบใดที่ ByVal hwnd ตราบใดที่ ByVal Msg ตราบใดที่ ByVal wParam ตราบใดที่ ByVal lParam ตราบใดที่) ในฐานะที่เป็น LongPrivate ประกาศฟังก์ชัน GetWindowLong Lib "user32" นามแฝง "GetWindowLongA" (ByVal hwnd ตราบใดที่ ByVal nIndex ตราบใดที่ LongPrivate ประกาศฟังก์ชั่น SetWindowLong Lib "user32" นามแฝง "SetWindowLongA" (ByVal hwnd ตราบใดที่ ByVal nIndex ตราบใดที่ ByVal dwNewLong ตราบใดที่) ตราบใดที่ LongPrivate Const GWL_WNDPROC = (- 4)Const ส่วนตัว WM_CUT = &H300 '---ตัดข้อความส่วนตัว Const WM_COPY As Long = &H301 '------------- คัดลอกข้อความส่วนตัว Const WM_PASTE As Long = &H302 '-- - ---------- วางข้อความ Private Const WM_CLEAR = &H303 '------------- ลบข้อความ [ลบจากเมนูคลิกขวา] Private Const EM_UNDO = &HC7 '--- - --------- ยกเลิกข้อความส่วนตัว Const WM_CONTEXTMENU = &H7B '-----เมนูคลิกขวาPrivate prevWndProc As LongPrivate Function WndProc (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case Msg Case WM_CUT , WM_COPY, WM_PASTE, WM_CLEAR, EM_UNDO, WM_CONTEXTMENU 'จัดการเหตุการณ์ที่กำหนดเองที่นี่ โดยควรเว้นว่างไว้ กรณีอื่น 'การประมวลผลฟังก์ชันระบบโทรกลับ WndProc = CallWindowProc (prevWndProc, hwnd, Msg, wParam, lParam) สิ้นสุด SelectEnd FunctionPublic Sub DisableAbility (TargetTextBox As TextBox) ' เรียกสิ่งนี้เมื่อโปรแกรมเริ่ม prevWndProc = GetWindowLong (TargetTextBox.hwnd, GWL_WNDPROC) SetWindowLong TargetTextBox.hwnd , GWL_WNDPROC ที่อยู่ของ WndProcEnd Sub
ฟังก์ชันของโค้ดนี้จะบล็อกเมนูคลิกขวา คัดลอก วาง ฯลฯ ของกล่องข้อความ ฟังก์ชันเหล่านี้สามารถเห็นได้ในหลายโปรแกรม แบ่งปันกับผู้ที่ชื่นชอบ VB ทุกคน ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน!