הסתרת קארה

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

דוגמת הקוד הבאה מראה כיצד ניתן להעביר את היישום שלך להסתיר סימן הכניסה בעת ציור של הדמות המופיעה על המסך והן בעת עיבוד הודעת WM_CHAR.

HWND hwnd, / / חלון לטפל HDC hdc;     / / הקשר ההתקן מקרה WM_CHAR: מתג (wParam) {מקרה 0x08: / / לעבד של backspace. 
             
                מעבר; 
 
            מקרה 0x09: / / לעבד כרטיסיה.  
             
                מעבר; 
 
            מקרה 0x0D: / / לעבד את החזרת גררה. 
             
                מעבר; 
 
            מקרה 0x1B: / / לעבד בריחה. 
             
                מעבר; 
 
            מקרה 0x0A: / / לעבד של מהארגומנט. 
             
                מעבר; 
 
            ברירת מחדל: / / הסתר סימן הכניסה. 

                HideCaret(hwnd); 
 
                / / לצייר את התו על המסך. 
 
                hdc = GetDC(hwnd); 
                SelectObject (hdc, GetStockObject(SYSTEM_FIXED_FONT)); 
 
                TextOut (hdc, x, y, lpszChar, 1); 
 
                ReleaseDC (hwnd, hdc); 
 
                / / הצגת סימן הכניסה. 
 
                ShowCaret(hwnd); 
 
        } 

 

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