2010-08-24 2 views
2

OK У меня есть игра, когда человек теряет боль, установленный другим курсором. Я использовал setcursro с loadcusor и WM_SETCURSOR. проблема в том, что мой курсор по умолчанию, который я установил там, где я регистрирую свое окно, меняется на часовое стекло до тех пор, пока человек не теряет, чем изменяет курсор, на который я его установил. Я обнаружил, что когда я использую WM_SETCURSOR, он меняет часовое значение по умолчанию на часовое стекло, пока я не установлю его на другой курсор, когда человек теряет. im используя win32
любая идея?Курсор C++ меняется на часовое стекло с использованием WM_SETCURSOR

ответ

3

Вообще, если вы собираетесь изменить курсоры много, вы хотите сделать что-то вроде:

Сначала мы инициализируем курсоры мы будем использовать:

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; 
Смежные вопросы