C++游标使用WM_SETCURSOR更改为沙漏

Ram*_*lol 2 c++ winapi cursor visual-c++

好的,我有一个游戏,当人失去了设置不同的光标.我使用带有loadcusor和WM_SETCURSOR的setcursro.问题是我的默认光标,我把它设置在我注册我的窗口的地方,它改为小时玻璃,直到该人输了,而不是它改变了我设置的光标.我发现当我使用WM_SETCURSOR时,它会将默认的cusor更改为沙漏,直到我在人输了时将其设置为不同的光标.即时通讯使用win32
任何想法?

Jer*_*fin 5

一般来说,如果要更改游标,您需要执行以下操作:

首先,我们初始化我们将使用的游标:

HCURSOR cursors[3];

cursors[0] = LoadCursor(NULL, IDC_ARROW);    // default cursor
cursors[1] = LoadCursor(NULL, IDC_CROSS);    // other cursor
cursors[2] = LoadCursor(NULL, IDC_WAIT);     // wait cursor

int current_cursor = 0;
Run Code Online (Sandbox Code Playgroud)

当我们想要改变光标时,我们只选择我们想要的那个:

current_cursor = 1;
Run Code Online (Sandbox Code Playgroud)

我们的WM_SETCURSOR处理程序看起来像这样:

case WM_SETCURSOR:
    SetCursor(cursors[current_cursor]);
    return TRUE;
Run Code Online (Sandbox Code Playgroud)