Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.03.2019
Сообщений: 20
1

Курсор

10.03.2020, 20:58. Показов 1472. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет. Сделал такую вещь, что при нажатии клавиши F3 меняется обычный курсор на крестик, но когда я изменяю положение курсора, то он изменяется сразу на стандартный. Помогите пожалуйста сделать так, что я мог клавишей F3 переключать обычный курсор на крестик и наоборот так, что при изменении положения курсора, его вид не менялся.

C++
1
2
3
4
5
6
7
8
case WM_SETCURSOR:
    {
        HCURSOR nCursor = LoadCursor(nullptr, IDC_CROSS);
        if (wParam == VK_F3)
        {
            SetCursor(nCursor);
        }
    }
Всё, что я выстрадал )
Буду очень благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2020, 20:58
Ответы с готовыми решениями:

Системный курсор загружается, а курсор из файла ресурсов-нет
Создала файл курсора с помощью добавления в файл ресурсов нового элемента. Курсор -Cursor.cur. При...

Курсор
Как вставить свой курсор?

Не устанавливается курсор
Здравствуйте! Никак не пойму, почему у меня не меняется курсор в консольном приложении в VS 2008 :(...

загруженный курсор
Всем привет! я создал окно с размерами 300х200, и загруженный курсор, с помощью функции:...

3
131 / 116 / 25
Регистрация: 03.05.2017
Сообщений: 336
Записей в блоге: 1
13.03.2020, 21:38 2
B классах элементов/окон пробовали менять курсор?

GCL_HCURSOR (https://docs.microsoft.com/en-... classlonga)
1
131 / 116 / 25
Регистрация: 03.05.2017
Сообщений: 336
Записей в блоге: 1
14.03.2020, 11:17 3
Кстaти, SetCursor в основном используется для обозначения разных ключевых точек окна, а не для изменения курсора в общем…
Например, в графическом редакторе SetCursor используется при наведении указателя на узелки графической фигуры.

То есть, Вы просто перепутали (запутались) в назначении функции.
Но, по событию WM_MOUSEMOVE можно форсированно вызывать SetCursor для достижения ожидаемого результата. Но это отрицательно скажется на производительности и эстетике (может возникнуть подозрение, что с курсором постоянно что-то не то)…
1
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
14.03.2020, 15:58 4
Лучший ответ Сообщение было отмечено FastAR как решение

Решение

Цитата Сообщение от FastAR Посмотреть сообщение
Помогите пожалуйста сделать так, что я мог клавишей F3 переключать обычный курсор на крестик и наоборот так, что при изменении положения курсора, его вид не менялся.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HCURSOR hCursor = NULL;
    switch (message)
    {
 
    case WM_KEYDOWN:
        if (wParam == VK_F3 && !hCursor)
        {
            hCursor = ::LoadCursor(NULL, IDC_CROSS);
            ::SetCursor(hCursor);
        }
        break;
    case WM_KEYUP:
        if (wParam == VK_F3 && hCursor)
        {
            hCursor = NULL;
            ::SetCursor(::LoadCursor(NULL, IDC_ARROW));
        }
        break;
    case WM_SETCURSOR:
        if (hCursor)
        {
            ::SetCursor(hCursor);
            return TRUE;
        }
        break;
 
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
1
14.03.2020, 15:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2020, 15:58
Помогаю со студенческими работами здесь

Свой курсор
Не могу разобраться как установить для окна постоянный, не стандартный курсор. Единственное как...

Поменять курсор
Мне дано задание создать форму 300*400, поверх всех окон, с новой иконкой и курсором, все сделал,...

Второй курсор
Саламалейкум друзья, если это возможно я хочу создать 2-ой курсор на экране, как мне это сделать?

CreateProcess сбивает курсор
STARTUPINFOA cif; ZeroMemory(&cif,sizeof(STARTUPINFOA)); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru