ウィンドウ外(デスクトップなど)のマウスカーソルを変更したいです
Posted: 2021年2月14日(日) 15:27
SetSystemCursorを使用して
左クリックで十字、右クリックで矢印にマウスカーソルを変更する処理をしたいのですが、
変更できません。
ヘッダーでwinuser.hを使うとのことですが、windows.hをincludeしているので不要かと判断しました。
また、第二引数のidですが、OCR_***がなぜか定義されていないので下記のURLを見て独自に
#define OCR_CROSS 32515
#define OCR_NORMAL 32512
https://docs.microsoft.com/ja-jp/window ... stemcursor
VC++2019
左クリックで十字、右クリックで矢印にマウスカーソルを変更する処理をしたいのですが、
変更できません。
ヘッダーでwinuser.hを使うとのことですが、windows.hをincludeしているので不要かと判断しました。
また、第二引数のidですが、OCR_***がなぜか定義されていないので下記のURLを見て独自に
#define OCR_CROSS 32515
#define OCR_NORMAL 32512
https://docs.microsoft.com/ja-jp/window ... stemcursor
VC++2019
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HCURSOR hCursor = CopyCursor(LoadCursor(NULL, IDC_ARROW)); //現在のカーソルを保存(復旧に使用)
switch (msg)
{
case WM_CREATE:
break;
case WM_RBUTTONDOWN:
SetSystemCursor(CopyCursor(hCursor), OCR_NORMAL); //カーソル復旧
break;
case WM_LBUTTONDOWN:
SetSystemCursor(CopyCursor(LoadCursor(NULL, IDC_CROSS)), OCR_CROSS); //カーソル変更
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}