Курсор в окне приложения неверного типа - PullRequest
0 голосов
/ 20 декабря 2010

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

1 Ответ

1 голос
/ 20 декабря 2010

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

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

wc.hCursor = LoadCursor(0, IDC_ARROW);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...