Курсор в окне приложения неверного типа
Немного покопавшись в создании 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
, Вам нужно будет загрузить / создать различные курсоры, и у вас будет возможность выбрать подходящий курсор в зависимости от состояния вашего приложения.