WNDCLASS

המבנה WNDCLASS מכיל את התכונות מחלקת חלון שנרשמו על-ידי הפונקציה RegisterClass.

מבנה זה הוחלף על ידי מבנה WNDCLASSEX בהם משתמשים עם הפונקציה RegisterClassEx . באפשרותך עדיין להשתמש WNDCLASS RegisterClass אם אין צורך להגדיר את סמל קטן המשויכות למחלקה חלון.

typedef struct _WNDCLASS {UINT סגנון; 
    WNDPROC lpfnWndProc; 
    int cbClsExtra; 
    int cbWndExtra; 
    לטפל hInstance; 
    HICON hIcon; 
    HCURSOR hCursor; 
    HBRUSH hbrBackground; 
    LPCTSTR lpszMenuName; 
    LPCTSTR lpszClassName; 
} WNDCLASS 

 

חברים

סגנון
ציון style(s) מחלקה. ניתן לשלב סגנונות באמצעות OR בין סיביות האופרטור (|). חבר זה יכול להיות כל צירוף של הערכים הבאים:
ערך פעולה
CS_BYTEALIGNCLIENT יישור אזור הלקוח של החלון על גבול בתים (בכיוון x). סגנון זה משפיע על רוחב החלון ואת מיקומו האופקי בצג.
CS_BYTEALIGNWINDOW יישור חלון בבתים (בכיוון x). סגנון זה משפיע על רוחב החלון ואת מיקומו האופקי בצג.
CS_CLASSDC מקצה אחד מכשיר הקשר לשיתוף על-ידי windows כל הכיתה. מאחר מחלקות חלון הם תהליך מסוים, אפשרי עבור הליכי משנה מרובים של יישום, כדי ליצור חלון מאותו סוג. קיימת גם אפשרות עבור הליכי משנה לנסות להשתמש בהקשר התקן בו-זמנית. כאשר זה קורה, המערכת מאפשרת הליך משנה אחד רק לסיים בהצלחה את פעולת הציור שלו. לקבלת מידע נוסף, ראה הקשרים התקן.
CS_DBLCLKS שולח פעמיים הודעות הנוהל חלון כאשר המשתמש לוחץ פעמיים על העכבר כאשר הסמן נמצא בתוך חלון השייכים למחלקה.
CS_GLOBALCLASS מתן אפשרות ליישום ליצור חלון של המחלקה להתחשב הערך של פרמטר hInstance המועבר של createwindow ליצירת או לפונקציה CreateWindowEx . אם לא תציין סגנון זה, הפרמטר hInstance שהועבר לפונקציה של createwindow ליצירת (או CreateWindowEx) חייבת להיות זהה לזו של פרמטר hInstance שהועבר לפונקציה RegisterClass.
באפשרותך ליצור מחלקה כללית על-ידי יצירת מחלקת חלון בספריית קישור דינאמי (DLL) רישום השם של קובץ ה-DLL ברישום תחת מפתחות הבאים:
HKEY_LOCAL_MACHINE\תוכנה
\Microsoft\Windows NT\
CurrentVersion\Windows\AppInit_DLLs
בכל פעם מתחיל תהליך, המערכת תטען את קבצי ה-Dll שצוינה בהקשר של התהליך התחיל לאחרונה לפני הקריאה את פונקציית נקודת הכניסה במסגרת התהליך. קובץ ה-DLL עליך לרשום את המחלקה במהלך הליך האתחול שלו, עליך לציין את סגנון CS_GLOBALCLASS.
CS_HREDRAW ציור מחדש את כל החלון אם תנועה או התאמת גודל משנה את הרוחב של אזור הלקוח.
CS_NOCLOSE ביטול סגור בתפריט חלון.
CS_OWNDC מקצה בהקשר התקן ייחודי עבור כל חלון בכיתה.
CS_PARENTDC מגדיר אזור חיתוך של חלון צאצא של חלון האב כך הילד לצייר האב. חלון קצת סגנון CS_PARENTDC מקבל בהקשר התקן הרגיל מטמון של המערכת בהתקן בהקשרים שונים. היא אינה מעניקה לילד האב בהקשר התקן או התקן הגדרות ההקשר. ציון CS_PARENTDC משפרת את הביצועים של יישום. לקבלת מידע נוסף, ראה הקשרים התקן.
CS_SAVEBITS שמירת כקובץ מפת סיביות, החלק של תמונת המסך מוסתר על-ידי חלון. המערכת משתמשת את מפת הסיביות שנשמר כדי ליצור מחדש את תמונת המסך כאשר החלון מוסר. המערכת מציגה את מפת הסיביות במיקום המקורי שלו, אינו שולח הודעות WM_PAINT ל- windows מוסתר על-ידי החלון אם זיכרון המשמש את מפת הסיביות לא נמחקה ואם יש פעולות אחרות של המסך לא תוקפם התמונה מאוחסנת. סגנון זה שימושי עבור חלונות קטנים (לדוגמה, תפריטים או תיבות דו-שיח) מוצג לזמן קצר ולאחר מכן מוסר לפני פעילות אחרת המסך נכנס לתוקף. סגנון זה מגביר את משך הזמן הנדרש כדי להציג את החלון, כי המערכת תחילה עליך להקצות זיכרון כדי לאחסן את מפת הסיביות.
CS_VREDRAW ציור מחדש את כל החלון אם תנועה או התאמת גודל משנה את הגובה של אזור הלקוח.

lpfnWndProc
מצביע לשגרה חלון. עליך להשתמש בפונקציה CallWindowProc כדי לקרוא לפרוצדורה חלון. לקבלת מידע נוסף, ראה WindowProc.
cbClsExtra
מציין את מספר הבתים הנוסף להקצאת בעקבות מבנה מחלקת חלון. שהמערכת מאתחלת את הבתים אפס.
cbWndExtra
מציין את מספר הבתים הנוסף להקצאת בעקבות המופע חלון. שהמערכת מאתחלת את הבתים אפס. אם יישום משתמש WNDCLASS לרשום תיבת דו-שיח שנוצרו באמצעות ההוראה מחלקה בקובץ משאבים, הוא חייב להגדיר איבר זה כ- 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 סיביות, חייב להיות ב- word מסדר נמוך של lpszClassName; המילה הגבוהות חייב להיות אפס.

אם lpszClassName הוא מחרוזת, ערך זה מציין את שם המחלקה של חלון.

QuickInfo

nbsp; Windows &NT: מחייב גירסה 3.1 או גירסה מתקדמת יותר.
Windows:נדרש Windows 95 או גירסה מתקדמת יותר.
חלונות CE:דורש גירסה 1.0 ואילך.
כותרת עליונה:להצהיר על winuser.h.
Unicode:מוגדר כ- Unicode ומבני ANSI.

ראה גם

Window Classes Overview, Window Class Structures, BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT

Index