Курсор в окне приложения неверного типа

Немного покопавшись в создании GUI с Windows API, я недавно обнаружил проблему с курсором. Когда я компилирую и запускаю свое приложение, оно показывает окно, как и предполагалось. Когда я перетаскиваю курсор из левой части экрана в окно приложений, когда он переходит границу, он становится элементом <-> для изменения размера, но он остается таким же в любом месте моего окна. То же самое касается, если я принесу это в окно снизу. Проблема не существует, когда я с правой стороны, хотя. Я задал вопрос, была ли это только моя программа, поэтому я пошел на сайт MSDN и даже скомпилировал и попробовал их программу (http://msdn.microsoft.com/en-us/library/ff381409%28v=VS.85%29.aspx). Та же проблема! Итак, я начал экспериментировать с сообщениями WM_SETCURSOR и функциями курсора, но ничего не получил. У кого-нибудь есть какое-либо объяснение этому и что я мог бы сделать, чтобы это исправить? Любая помощь будет принята с благодарностью.

1 ответ

Решение

Да, этот пример кода будет вести себя так, как вы описываете, потому что hCursor член WNDCLASS установлен на ноль, и WindowProc() не справляется WM_SETCURSOR,

Если вам нужен один и тот же курсор все время, проще всего сделать что-то подобное при настройке класса окна:

wc.hCursor = LoadCursor(0, IDC_ARROW);

Если вы хотите иметь больше контроля над курсором, то вы хотите оставить WNDCLASS::hCursor ноль и вызов SetCursor() в ответ на WM_SETCURSOR, Вам нужно будет загрузить / создать различные курсоры, и у вас будет возможность выбрать подходящий курсор в зависимости от состояния вашего приложения.

Другие вопросы по тегам