Caret is a blinking cursor in a window. It displays the current position of the cursor where the input is getting added from user. A textbox or text area control automatically displayes caret. It is the builtin property of the windon. However a custom window application which displayes logs, terminal or console output etc can use caret. Win32 APIs are available to create, distroy, show, hide, set position etc.
CreateCaret() creates a cursor with a size of nWidth x nHeight. It creates a solid cursor if hBitmap is NULL else the bitmap is used for drawing the cursor.
BOOL WINAPI CreateCaret(HWND hWnd, HBITMAP hBitmap, int nWidth, int nHeight);
Frees the memory of cursor object and releases the handle
BOOL WINAPI DestroyCaret(void);
Returns the current blink interval time of the cursor in milliseconds. The less the number the more the blink rate.
UINT WINAPI GetCaretBlinkTime(void);
Returns the current position of the cursor.
BOOL WINAPI GetCaretPos(LPPOINT lpPoint);
Hides the cursor of the window.
BOOL WINAPI HideCaret(HWND hWnd);
Set the blink time of the caret in miliseconds. The less the time the more the blinking rate.
BOOL WINAPI SetCaretBlinkTime(UINT uMSeconds);
SetCaretPos set the caret position in the window
BOOL WINAPI SetCaretPos(int X, int Y);
ShowCaret shows the blinking caret
BOOL WINAPI ShowCaret(HWND hWnd);
Caret Demo application
Demo aplication showing Create, Destroy, Show, Hide of Caret/Cursor. With UP arrow key, caret blink time is reduced and blink rate increases. With DOWN arrow key, caret blink time is increated and blink rate reduced.
About our authors: Team EQA
MFC hides WinMain in its framework and includes source file on WinMain(). This explains how framework calls global CWinApp::Initinstance() from entry WinMain.
This is constructed during global C++ objects are constructed and is already available when Windows calls the WinMain function, which is supplied by the ...
Define a custom Window class structure, Register the class name, CreateWindow, Show windows and write message get and dispatch loop statements. Define the Window CallBack procedure and write the handlers.
DispatchMessage() is a API which indirectly triggers the Window CallBack procedure. Message structure members from this function are passed to the CallBack procedure. CallBack procedure should implement event handlers depending on the need of the application.
LPARAM and WPARAM are the two parameters in Window CallBack procedure. They signifies parameters of various events. They are used in handing individual events.
We need to write WinMain and need to follow all these in a Win32 application. However we need not to write much if we are writing an application with MFC ...
Learn on Youtube