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

时间:2010-08-24 19:21:38

标签: c++ visual-c++ winapi cursor

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

1 个答案:

答案 0 :(得分: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;

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

current_cursor = 1;

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

case WM_SETCURSOR:
    SetCursor(cursors[current_cursor]);
    return TRUE;