הצגת סמן

המערכת מציגה באופן אוטומטי את הסמן מחלקה (הסמן המשויכים החלון שעליו מצביע הסמן). באפשרותך להקצות סמן מחלקה בעת רישום מחלקת חלון. הדוגמה הבאה ממחישה זאת על-ידי הקצאת נקודת אחיזה הסמן אל חבר hCursor של מבנה WNDCLASS המזוהה על-ידי הפרמטר wc.

WNDCL&ASS wc; 
 
/ / למלא את מבנה מחלקת חלון עם פרמטרים אשר / / לתאר את החלון הראשי של. 
 
wc.style = NULL;                        / / מחלקת style(s) wc.lpfnWndProc = MainWndProc (WNDPROC); / / חלון הליך wc.cbClsExtra = 0;           / / לא wc.cbWndExtra נתונים נוספים לכל מחלקה = 0;           / / לא לכל-חלון נתונים נוספים wc.hInstance = hinst;        / / יישומים הנמצאים בבעלות class wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);     / / מחלקת סמל wc.hCursor = LoadCursor (hinst, MAKEINTRESOURCE(230)); / / מחלקת הסמן wc.hbrBackground = GetStockObject(WHITE_BRUSH); / / מחלקת רקע wc.lpszMenuName = "GenericMenu";               / / מחלקת תפריט wc.lpszClassName = "GenericWClass" / / שם מחלקת / / מחלקת חלון הרשמה. 
 
לחזור RegisterClass(amp;wc) 

 

כאשר רשום מחלקת חלון, הסמן המזוהה על-ידי 230 בקובץ הגדרת משאב של היישום יהיה הסמן כברירת מחדל עבור כל חלונות מבוסס על המחלקה.

היישום שלך יכול לשנות את העיצוב של הסמן על-ידי שימוש בפונקציה SetCursor וציון נקודת אחיזה הסמן שונים. עם זאת, כאשר הסמן זז, המערכת ציור מחדש את הסמן מחלקה במיקום החדש. כדי למנוע את הסמן מחלקה להיות בעבר, עליך לעבד את ההודעה WM_SETCURSOR . כל הזמן של הסמן ועכבר קלט אינו מופיע, המערכת שולחת הודעה זו אל החלון שבו נמצא הסמן נע.

באפשרותך לציין סמנים שונים עבור תנאים שונים בעת עיבוד WM_SETCURSOR. לדוגמה, בדוגמה שלהלן ניתן לראות כיצד להציג את הסמן hCurs3 בכל פעם יזוז הסמן מעל סמל היישום ממוזער.

מקרה WM_SETCURSOR: / / אם החלון ממוזער, צייר את הסמן hCurs3. 
    / / אם החלון לא ממוזער, צייר ברירת המחדל / / הסמן (הסמן מחלקה). 
 
    אם (IsIconic(hwnd)) {SetCursor(hCurs3); 
        מעבר; 
    } 

 

כאשר החלון ממוזער לא, המערכת תציג את הסמן מחלקה.

באפשרותך להחליף סמן מחלקה באמצעות הפונקציה SetClassLong . פונקציה זו משנה את הגדרות חלון ברירת המחדל עבור כל החלונות של מחלקה נתון. הדוגמה הבאה מחליף את הסמן מחלקה קיים עם הסמן hCurs2.

/ / שינוי הסמן עבור מחלקת חלון המיוצג על-ידי hwnd. 
 
SetClassLong (hwnd, / / חלון לטפל GCL_HCURSOR, / / שינוי הסמן hCurs2 (ארוכה));   / / חדש הסמן 

 

לקבלת מידע נוסף, ראה חלון מחלקות קלט עכבר.

Index