WM_SYSCOMMAND

หน้าต่างได้รับข้อความนี้เมื่อผู้ใช้เลือกคำสั่งจากเมนูหน้าต่าง(เดิมเรียกว่าเมนูระบบหรือตัวควบคุม) หรือเมื่อผู้ใช้เลือกปุ่มขยายใหญ่สุด ปุ่มย่อเล็กสุด การคืนค่าปุ่ม หรือปุ่มปิด.

WM_SYSCOMMAND uCmdType = wParam        / / ชนิดของคำสั่งของระบบที่ร้องขอ xPos = LOWORD(lParam)    / / ตำแหน่งในแนวนอน ในหน้าจอคู่ yPos = HIWORD(lParam)    / / ประสานกับตำแหน่งในแนวตั้ง ในหน้าจอ 

 

พารามิเตอร์

uCmdType
ระบุชนิดของคำสั่งระบบที่ร้องขอ พารามิเตอร์นี้สามารถเป็นหนึ่งในค่าต่อไปนี้.
ค่า ความหมาย
SC_CLOSE ปิดหน้าต่าง.
SC_CONTEXTHELP เปลี่ยนเคอร์เซอร์เป็นเครื่องหมายคำถามกับตัวชี้ ถ้าผู้ใช้แล้วคลิกที่ตัวควบคุมในกล่องโต้ตอบ ตัวควบคุมได้รับข้อความ WM_HELP.
SC_DEFAULT เลือกรายการตัวเลือกเริ่มต้น ผู้ใช้คลิกสองครั้งเพียงเมนูหน้าต่าง.
SC_HOTKEY หน้าต่างที่เกี่ยวข้องกับคีย์ความร้อนที่ระบุโปรแกรมประยุกต์ที่เปิดใช้งาน คำว่าใบสั่งต่ำของlParamระบุหน้าต่างเพื่อเปิดใช้งาน.
SC_HSCROLL เลื่อนตามแนวนอน.
SC_KEYMENU ดึงเมนูหน้าต่างเป็นผลมาจากการกดแป้นพิมพ์.
SC_MAXIMIZE หน้าต่างการขยายหน้าต่างใหญ่สุด.
SC_MINIMIZE หน้าต่างการย่อหน้าเล็กสุด.
SC_MONITORPOWERnbsp & nbsp; ตั้งค่าสถานะของการแสดงผล คำสั่งนี้สนับสนุนอุปกรณ์ที่มีคุณสมบัติการประหยัดพลังงาน เช่นคอมพิวเตอร์ส่วนบุคคลที่ใช้พลังงานแบตเตอรี.

lParamสามารถมีค่าต่อไปนี้:

1 หมายถึง การแสดงผลจะให้พลังงานต่ำ.

2 หมายถึง การแสดงกำลังปิดระบบปิด.

SC_MOUSEMENU ดึงเมนูหน้าต่างเป็นผลมาจากการคลิกเมาส์.
SC_MOVE ย้ายหน้าต่าง.
SC_NEXTWINDOW ย้ายไปยังหน้าต่างถัดไป.
SC_PREVWINDOW ย้ายไปยังหน้าต่างก่อนหน้า.
SC_RESTORE คืนค่าหน้าต่างปกติตำแหน่งและขนาดของ.
SC_SCREENSAVE ดำเนินการที่ระบุในส่วน [boot] ของระบบโปรแกรมประยุกต์โปรแกรมรักษาหน้าจอแฟ้ม INI.
SC_SIZE ขนาดของหน้าต่าง.
SC_TASKLIST การเรียกใช้เมนู'เริ่ม'.
SC_VSCROLL เลื่อนแนวตั้ง.

xPos
ระบุตำแหน่งแนวนอนของเคอร์เซอร์ ในหน้าจอพิกัด ถ้ามีเลือกคำสั่งเมนูหน้าต่างโดยใช้เมาส์ มิฉะนั้นxPosพารามิเตอร์ไม่ใช้.
yPos
ระบุตำแหน่งแนวตั้งของเคอร์เซอร์ ในหน้าจอพิกัด ถ้ามีเลือกคำสั่งเมนูหน้าต่างโดยใช้เมาส์ พารามิเตอร์นี้คือ – 1 ถ้าคำสั่งมีเลือกโดยใช้ตัวเร่งความเร็วระบบ หรือศูนย์ถ้าใช้แบบ mnenomic.

ส่งกลับค่า

แอปพลิเคชันควรกลับศูนย์ถ้าดำเนินกับข้อความนี้.

หมายเหตุ

ฟังก์ชันDefWindowProcการดำเนินตามคำร้องขอเมนูหน้าต่างสำหรับการกระทำที่กำหนดไว้ล่วงหน้าที่ระบุในตารางก่อนหน้า.

ในข้อความ WM_SYSCOMMAND บิตต่ำลำดับสี่ของพารามิเตอร์uCmdTypeถูกใช้ภายใน โดยระบบ การขอรับผลถูกต้องเมื่อทดสอบค่าของuCmdTypeโปรแกรมประยุกต์ต้องรวมค่า 0xFFF0 ด้วยค่าuCmdTypeโดยใช้และตัวดำเนินการระดับบิต.

รายการในเมนูในเมนูหน้าต่างสามารถแก้ไขได้ โดยใช้เครื่องGetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItemและฟังก์ชันSetMenuItem โปรแกรมประยุกต์ที่ปรับเปลี่ยนเมนูหน้าต่างต้องประมวลผลข้อความ WM_SYSCOMMAND.

แอปพลิเคชันสามารถกระทำคำสั่งใด ๆ ระบบตลอดเวลา ด้วยการส่งข้อความ WM_SYSCOMMAND กับDefWindowProc WM_SYSCOMMAND ข้อความใด ๆ ที่ดำเนินการ โดยโปรแกรมประยุกต์ที่ไม่ต้องผ่านการDefWindowProc ค่าคำสั่งใด ๆ ที่เพิ่ม โดยโปรแกรมประยุกต์ต้องถูกประมวลผล โดยแอพลิเคชัน และไม่สามารถถูกส่งผ่านไปยังDefWindowProc.

เร่งความเร็วแป้นที่กำหนดไว้เมื่อต้องการเลือกรายการจากเมนูหน้าต่างจะแปลเป็นข้อความ WM_SYSCOMMAND กดแป้นพิมพ์ลัดอื่น ๆ ทั้งหมดจะแปลเป็นข้อความ WM_COMMAND.

QuickInfo

nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winuser.h.

ดูเพิ่มเติม

ภาพรวมของแป้นพิมพ์ Acceleratorsข้อความเร่งความเร็วแป้นพิมพ์ ภาพรวมการจัดการพลังงาน AppendMenu, DefWindowProc, GetSystemMenu, InsertMenu, ModifyMenu, WM_COMMAND

Index