ในความเป็นจริง ปุ่มสามปุ่มที่ด้านขวาบนของแบบฟอร์มสอดคล้องกับตัวเลือกต่างๆ ใน ControlBox (ControlBox) ที่ด้านซ้ายบนของแบบฟอร์ม (ย่อเล็กสุด/ขยายใหญ่สุด/ปิด) โดยที่ปุ่มขยายใหญ่สุด (MaxButton) และย่อเล็กสุด ( Minbutton) สามารถตั้งค่าได้โดยตรงในคุณสมบัติของแบบฟอร์ม แต่ VB ไม่มีฟังก์ชั่นการตั้งค่าปุ่ม "X"! เพื่อให้บรรลุฟังก์ชันนี้ คุณต้องใช้ API:
เนื่องจากปุ่ม "X" สอดคล้องกับตัวเลือกการปิดของ ControlBox เราจึงต้องลบตัวเลือกการปิดของเมนูระบบเท่านั้น (นั่นคือ ControlBox)! ก่อนอื่นคุณสามารถดูเมนูระบบที่มุมซ้ายบนของเบราว์เซอร์ที่คุณใช้อยู่ หมายเลขใดคือตัวเลือก [ปิด] ไม่ใช่หมายเลขที่ 6 อันที่ 7 แล้วเส้นแบ่งก็นับเป็นหนึ่ง! ตัวหารที่ 6!
เมื่อเราลบตัวเลือกปิดออก เส้นคั่นแปลกๆ จะเหลืออยู่ ดังนั้นจึงควรลบเส้นคั่นออกด้วย ดัชนีของเมนูเริ่มต้นจาก 0 และเส้นแบ่งคือเส้นที่ 6 ดังนั้น Index=5
การแก้ไข: เพื่อให้โค้ดโปรแกรมทำงานได้อย่างถูกต้องบน Windows NT ให้เปลี่ยนประเภท Integer เป็น Long 89.05.04
'ติดตามเมนูระบบ'
PRivateDeclareFunctionGetSystemMenuLib "ผู้ใช้ 32" นามแฝง "GetSystemMenu" (ByValhwndAsLong, ByValbRevertAsLong) AsLong
'ลบระบบเมนู API
PrivateDeclareFunctionRemoveMenuLib "user32" Alias "RemoveMenu" (ByValhMenuAsLong, ByValnPositionAsLong, ByValwFlagsAsLong) AsLong
'พารามิเตอร์แรกคือ hwnd ของเมนูระบบ
'พารามิเตอร์ตัวที่สองคือ Index-> ของตัวเลือกที่จะลบออก