WNDCLASSEX

โครงสร้างของWNDCLASSEXประกอบด้วยหน้าต่างชั้นข้อมูล การใช้RegisterClassExและGetClassInfoEx ฟังก์ชัน.

WNDCLASSEXโครงสร้างคล้ายกับโครงสร้างของWNDCLASS มีความแตกต่างของสอง WNDCLASSEXประกอบด้วยสมาชิกcbSizeซึ่งระบุขนาดของโครงสร้าง และสมาชิกhIconSmซึ่งประกอบด้วยหมายเลขอ้างอิงเป็นไอคอนขนาดเล็กที่เกี่ยวข้องกับคลาสหน้าต่าง.

typedef struct _WNDCLASSEX { UINT cbSize 
    UINT ลักษณะ 
    WNDPROC lpfnWndProc 
    int cbClsExtra 
    int cbWndExtra 
    หมายเลขอ้างอิง hInstance 
    HICON hIcon 
    HCURSOR hCursor 
    HBRUSH hbrBackground 
    LPCTSTR lpszMenuName 
    LPCTSTR lpszClassName 
    HICON hIconSm 
} WNDCLASSEX 

 

สมาชิก

cbSize
ระบุขนาด ในไบต์ โครงสร้างนี้ ตั้งค่าสมาชิกนี้ sizeof(WNDCLASSEX) ต้องแน่ใจว่าการตั้งค่าสมาชิกนี้ก่อนการเรียกฟังก์ชันGetClassInfoEx.
ลักษณะ
ระบุ style(s) ของคลาส ลักษณะที่สามารถถูกรวม โดย OR ระดับบิตใช้ตัวดำเนินการ (|) สมาชิกนี้สามารถถูกรวมกันของค่าต่อไปนี้:
ค่า กระทำ
CS_BYTEALIGNCLIENT จัดตำแหน่งพื้นที่ไคลเอ็นต์ของหน้าต่างบนขอบเขตไบต์ (ในทิศทางที่ x) ลักษณะนี้มีผลต่อความกว้างของหน้าต่างและตำแหน่งแนวนอนบนจอแสดง.
CS_BYTEALIGNWINDOW จัดหน้าต่างบนขอบไบต์ (ในทิศทางที่ x) ลักษณะนี้มีผลต่อความกว้างของหน้าต่างและตำแหน่งแนวนอนบนจอแสดง.
CS_CLASSDC จัดสรรบริบทอุปกรณ์หนึ่งสามารถใช้ร่วมกัน โดยใช้ windows ทั้งหมดในชั้นเรียน เนื่องจากคลาสหน้าต่างเป็นกระบวนการเฉพาะ เป็นไปได้สำหรับหัวข้อต่าง ๆ ของโปรแกรมประยุกต์สร้างหน้าต่างของชั้นเดียวกัน ก็ยังเป็นไปได้สำหรับหัวข้อในการพยายามจะใช้บริบทอุปกรณ์พร้อมกัน เมื่อเกิดเหตุการณ์ ระบบจะอนุญาตให้เพียงหนึ่งเธรดการสำเร็จเสร็จสิ้นการดำเนินการของรูปวาด ดูข้อมูลเพิ่มเติม บริบทอุปกรณ์.
CS_DBLCLKS ส่งคลิกสองครั้งข้อความลงในกระบวนงานของหน้าต่างเมื่อผู้ใช้ดับเบิลคลิเมาส์ในขณะที่เคอร์เซอร์วางอยู่ภายในหน้าต่างของชั้น.
CS_GLOBALCLASS อนุญาตให้โปรแกรมประยุกต์สร้างหน้าต่างของระดับชั้นที่คำนึงถึงค่าของพารามิเตอร์hInstanceถูกส่งผ่านไปยังฟังก์ชันCreateWindowEx ถ้าคุณไม่ระบุลักษณะนี้hInstanceพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชันCreateWindow (หรือCreateWindowEx) จะต้องเหมือนกันเป็นพารามิเตอร์hInstanceถูกส่งผ่านไปยังฟังก์ชันRegisterClassEx.
คุณสามารถสร้างชั้นส่วนกลาง โดยการสร้างหน้าต่างชั้นใน dynamic-link library (DLL) และชื่อของ DLL ในรีจิสตรีคีย์ต่อไปนี้ในการแสดงรายการ:
HKEY_LOCAL_MACHINE\Software
\Microsoft\Windows NT\
CurrentVersion\Windows\AppInit_DLLs
เมื่อใดก็ ตามที่เริ่มกระบวนการทำงาน ระบบโหลด Dll ที่ระบุในบริบทของกระบวนการเริ่มต้นใหม่ก่อนการเรียกฟังก์ชันจุดในกระบวนการนั้น DLL ต้องลงทะเบียนเรียนในระหว่างขั้นตอนการเตรียมใช้งาน และต้องระบุลักษณะ CS_GLOBALCLASS.
CS_HREDRAW Redraws หน้าต่างทั้งหมดถ้าการเคลื่อนย้ายหรือปรับขนาดความกว้างของพื้นที่ที่ไคลเอ็นต์การเปลี่ยนแปลง.
CS_NOCLOSE ปิดปิดใช้งานบนเมนูหน้าต่าง.
CS_OWNDC จัดสรรบริบทอุปกรณ์ที่ไม่ซ้ำกันสำหรับแต่ละหน้าต่างในชั้นเรียน ดูข้อมูลเพิ่มเติม บริบทอุปกรณ์.
CS_PARENTDC ตั้งค่าพื้นที่รูปวาดของหน้าต่างลูกเป็นที่ของหน้าต่างหลักเพื่อให้เด็กสามารถวาดบนหลักการ หน้าต่างกับบิตลักษณะ CS_PARENTDC รับบริบทอุปกรณ์อย่างสม่ำเสมอจากแคชของบริบทอุปกรณ์ของระบบ มันไม่ให้เด็กผู้ปกครองบริบทอุปกรณ์หรือการตั้งค่าบริบทของอุปกรณ์ ระบุ CS_PARENTDC ช่วยเพิ่มประสิทธิภาพการทำงานของโปรแกรมประยุกต์ ดูข้อมูลเพิ่มเติม บริบทอุปกรณ์.
CS_SAVEBITS บันทึก เป็นบิตแมป ส่วนของรูปหน้าจอการที่บดบัง โดยหน้าต่าง ระบบใช้บิตแมปที่บันทึกไว้เพื่อสร้างภาพในจอภาพเมื่อมีเอาหน้าต่าง ระบบแสดงบิตแมปที่ตำแหน่งเดิม และไม่มีส่ง WM_PAINTข้อความ windows บดบัง โดยหน้าต่าง หากหน่วยความจำที่ใช้บิตแมปได้ไม่ถูกละทิ้ง และกระทำหน้าจออื่น ๆ ได้ยกเลิกรูปเก็บไว้ ลักษณะนี้มีประโยชน์สำหรับหน้าต่างขนาดเล็ก (เช่น เมนูหรือกล่องโต้ตอบ) ที่มีแสดงสั้น ๆ แล้ว เอาออกก่อนที่กิจกรรมอื่น ๆ ของหน้าจอเกิดขึ้น ลักษณะนี้เพิ่มขึ้นในเวลาที่จำเป็นเพื่อแสดงหน้าต่าง เนื่องจากระบบต้องจัดสรรหน่วยความจำเพื่อจัดเก็บบิตแมปก่อน.
CS_VREDRAW Redraws หน้าต่างทั้งหมดถ้าการเคลื่อนย้ายหรือปรับขนาดความสูงของพื้นที่ที่ไคลเอ็นต์การเปลี่ยนแปลง.

lpfnWndProc
ชี้ลงในกระบวนงานของหน้าต่างนั้น คุณต้องใช้ฟังก์ชันCallWindowProcในการเรียกกระบวนงานหน้าต่าง ดูข้อมูลเพิ่มเติมWindowProc.
cbClsExtra
ระบุจำนวนของไบต์ที่พิเศษเพื่อปันส่วนตามโครงสร้างของคลาสหน้าต่าง ระบบเริ่มต้นไบต์ที่เป็นศูนย์.
cbWndExtra
ระบุจำนวนของไบต์ที่พิเศษในการปันส่วนต่ออินสแตนซ์ของหน้าต่าง ระบบเริ่มต้นไบต์ที่เป็นศูนย์ ถ้าโปรแกรมประยุกต์ใช้WNDCLASSEXเพื่อลงทะเบียนในกล่องโต้ตอบที่สร้าง โดยใช้คำสั่งคลาสในแฟ้มทรัพยากร คุณต้องตั้งค่าสมาชิกนี้เป็น DLGWINDOWEXTRA.
hInstance
จัดการกับอินสแตนซ์ที่กระบวนงานหน้าต่างของคลาสนี้เป็นการภายใน.
hIcon
จัดการไอคอนของคลาส สมาชิกนี้ต้องเป็นตัวจัดการทรัพยากรไอคอน ถ้าสมาชิกนี้เป็น NULL โปรแกรมประยุกต์ต้องวาดไอคอนเมื่อใดก็ ตามที่ผู้ใช้ย่อหน้าเล็กสุดหน้าต่างของโปรแกรมประยุกต์.
hCursor
จัดการการเคอร์เซอร์คลาส สมาชิกนี้ต้องเป็นตัวจัดการทรัพยากรเคอร์เซอร์ ถ้าสมาชิกนี้เป็น NULL โปรแกรมประยุกต์ต้องกำหนดค่ารูปร่างเคอร์เซอร์เมื่อใดก็ ตามที่เมาส์เลื่อนลงในหน้าต่างของโปรแกรมประยุกต์.
hbrBackground
จัดการการแปรงพื้นหลังของคลาส สมาชิกนี้สามารถถูกหมายเลขอ้างอิงการแปรงมีอยู่จริงจะใช้สำหรับการวาดภาพพื้นหลัง หรือสามารถเป็นค่าสี ค่าสีต้องเป็นอย่างใดอย่างหนึ่งสีระบบมาตรฐานต่อไปนี้ (ค่า 1 ต้องเพิ่มสีที่เลือก) ถ้ามีกำหนดค่าสี คุณต้องแปลงอย่างใดอย่างหนึ่งต่อไปนี้HBRUSH:

COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT

ระบบลบคลานมและขวดนมเบื้องหลังโดยอัตโนมัติเมื่อเรียนอยู่รอด แอปพลิเคชันไม่ควรลบเหล่านี้และขวดนม เนื่องจากอาจมีใช้คลาสได้ โดยหลายอินสแตนซ์ของโปรแกรมประยุกต์.

เมื่อสมาชิกนี้เป็น NULL โปรแกรมประยุกต์ต้องสีพื้นหลังของตัวเองทุกครั้งที่มีการร้องขอการระบายสีในพื้นที่ของไคลเอ็นต์ เพื่อตรวจสอบว่า เบื้องหลังต้องทาสี แอปพลิเคชันสามารถประมวลผลข้อความ WM_ERASEBKGND หรือสมาชิกfEraseของทดสอบ PAINTSTRUCTโครงสร้างที่ได้กรอกรายละเอียดตาม BeginPaintฟังก์ชัน.

lpszMenuName
ชี้เป็นสายอักขระอักขระที่สิ้นสุดด้วยค่า null ที่ระบุชื่อทรัพยากรของเมนูคลาส เป็นชื่อปรากฏในแฟ้มทรัพยากร ถ้าคุณใช้จำนวนเต็มเพื่อระบุเมนู ใช้แมโคMAKEINTRESOURCE ถ้าสมาชิกนี้เป็น NULL, windows ของคลาสนี้มีเมนูไม่เริ่มต้น.
lpszClassName
ชี้เป็นสายอักขระที่สิ้นสุดด้วยค่า null หรืออะตอม ถ้าพารามิเตอร์นี้เป็นอะตอม มันต้องเป็นอะตอมส่วนกลางที่สร้างขึ้น โดยการเรียกฟังก์ชันGlobalAddAtomก่อนหน้านี้ อะตอม ค่าแบบ 16 บิต ต้องอยู่ในคำต่ำใบสั่งของlpszClassName คำสูงใบสั่งต้องเป็นศูนย์.

ถ้า สตริlpszClassNameระบุชื่อคลาสหน้าต่าง.

hIconSm
จัดการเป็นไอคอนขนาดเล็กที่เกี่ยวข้องกับคลาสหน้าต่าง ถ้าสมาชิกนี้เป็น NULL ระบบค้นหาทรัพยากรไอคอนที่ระบุ โดยสมาชิกhIconสำหรับไอคอนมีขนาดที่เหมาะสมเพื่อใช้เป็นไอคอนขนาดเล็ก.

QuickInfo

nbsp Windows &NT:ต้องการรุ่น 3.5 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน
หัวข้อ:ประกาศใน winuser.h
Unicode:กำหนดเป็นโครงสร้างแบบ Unicode และ ANSI.

ดูเพิ่มเติม

หน้าต่างชั้นรวมโครงสร้างของคลาสหน้าต่าง GetClassInfoEx, RegisterClassEx

Index