יצירה והצגה של קארה

עם קבלת מוקד לוח המקשים, החלון צריך ליצור ולהציג את קארה. השתמש בפונקציה CreateCaret כדי ליצור תו בהחלון הנתון. לאחר מכן, ניתן לפנות SetCaretPos כדי להגדיר את המיקום הנוכחי של סימן הכניסה ו- ShowCaret כדי להפוך את תו גלוי.

המערכת שולחת את הודעת WM_SETFOCUS חלון המקבל מוקד לוח המקשים; לכן, יישום יש ליצור ולהציג סימן הכניסה בעת עיבוד הודעה זו.

HWND hwnd, / / חלון לטפל int x;           / / אופקי קואורדינטות הסמן int y;           / / אנכי קואורדינטות הסמן int nWidth;      / / רוחב הסמן int nHeight;     / / גובה של הסמן תו * lpszChar;  / / מצביע על אופי WM_SETFOCUS מקרה: / / ליצור תו שחור אחיד. 
        CreateCaret (hwnd, (HBITMAP) NULL, nWidth, nHeight); 
 
    / / להתאים את מיקום סימן caret, בקואורדינטות של הלקוח. 
        SetCaretPos (x, y); 
 
    / / הצגת סימן הכניסה. 
        ShowCaret(hwnd); 
 
        מעבר 

 

כדי ליצור סימן caret מבוסס על מפת סיביות, עליך לציין נקודת אחיזה מפת סיביות בעת שימוש ב- CreateCaret. באפשרותך להשתמש ביישום של גרפיקה כדי ליצור מפת הסיביות, מהדר משאב כדי להוסיף את מפת הסיביות של היישום שלך למשאבים. להשתמש ביישום שלך LoadBitmap הפונקציה כדי לטעון את נקודת האחיזה של מפת סיביות. לדוגמה, באפשרותך להחליף את הקו CreateCaret בדוגמה הקודמת הכולל את השורות הבאות ליצירת סימן caret של מפת סיביות.

/ / לטעון משאב המוגדר על-ידי היישום באמצעות סימן הכניסה. 
 
    hCaret = LoadBitmap (hinst, MAKEINTRESOURCE(120)); 
 
/ / יצירת סימן caret של מפת סיביות. 
 
    CreateCaret (hwnd, hCaret, 0, 0) 

 

לחלופין, באפשרותך להשתמש CreateBitmap או CreateDIBitmap הפונקציה כדי לאחזר את נקודת האחיזה של מפת סיביות של קארה. לקבלת מידע נוסף אודות מפות סיביות, ראה מפות סיביות.

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

Index