I'm creating a program that the user can draw shapes and also delete them (like Paint). For a good user experience, I want to change the mouse cursor to "eraser" to erase shapes. This will happen when the user clicks on the "Delete" button. After the user finish, return it back to the old cursor, again by clicking a button.
How can I achieve such a thing like that?
For example: In this function, I want to change the cursor. It triggers when the user click on the "Delete" button
void CMFCApplicationDlg::OnBnClickedButtonDeleteBtn()
{
SetCursor() // ???
if (!toDelete)
toDelete = true;
else
toDelete = false;
}
In your CView class, you can just use the following:
SetCursor(theApp.LoadStandardCursor(IDC_ARROW));
In WinUser.h, you have the following definition for cursors:
/*
* Standard Cursor IDs
*/
#define IDC_ARROW MAKEINTRESOURCE(32512)
#define IDC_IBEAM MAKEINTRESOURCE(32513)
#define IDC_WAIT MAKEINTRESOURCE(32514)
#define IDC_CROSS MAKEINTRESOURCE(32515)
#define IDC_UPARROW MAKEINTRESOURCE(32516)
#define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */
#define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */
#define IDC_SIZENWSE MAKEINTRESOURCE(32642)
#define IDC_SIZENESW MAKEINTRESOURCE(32643)
#define IDC_SIZEWE MAKEINTRESOURCE(32644)
#define IDC_SIZENS MAKEINTRESOURCE(32645)
#define IDC_SIZEALL MAKEINTRESOURCE(32646)
#define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */
#if(WINVER >= 0x0500)
#define IDC_HAND MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */
#define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */
#if(WINVER >= 0x0400)
#define IDC_HELP MAKEINTRESOURCE(32651)
#endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0606)
#define IDC_PIN MAKEINTRESOURCE(32671)
#define IDC_PERSON MAKEINTRESOURCE(32672)
#endif /* WINVER >= 0x0606 */
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.