Форум программистов, компьютерный форум CyberForum.ru

Какой курсор отображается? - C++

Восстановить пароль Регистрация
 
ne_k
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 5
30.12.2012, 15:46     Какой курсор отображается? #1
Здравствуйте, мне нужно узнать какой курсор отображается в системе в данный момент?

CBuilder
C++
1
2
3
4
5
CURSORINFO pc;
pc.cbSize = sizeof(CURSORINFO);
 
GetCursorInfo(&pc);
DrawIcon(GetDC(Form1->Handle), 0, 0, pc.hCursor);
На форме рисуется курсор, мне же нужно просто узнать его название, что бы потом выполнить определенное действие.
Мельком смотрел на структуры в MSDN, но так ничего и не нашел.

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 15:46     Какой курсор отображается?
Посмотрите здесь:

скрыть курсор C++
C++ Курсор
C++ Курсор
Курсор C++
Курсор и Изображени C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
30.12.2012, 15:54     Какой курсор отображается? #2
ne_k, вот список стандартных ID(для простоты омеров стандартных курсоров)
winuser.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
 * Standard Cursor IDs
 */
#define IDC_ARROW           MAKEINTRESOURCE(32512)
#define IDC_IBEAM           MAKEINTRESOURCE(32513)
#define IDC_WAIT            MAKEINTRESOURCE(32514)
#define IDC_CROSS           MAKEINTRESOURCE(32515)
#define IDC_UPARROW         MAKEINTRESOURCE(32516)
#define IDC_SIZE            MAKEINTRESOURCE(32640)  /* OBSOLETE: use IDC_SIZEALL */
#define IDC_ICON            MAKEINTRESOURCE(32641)  /* OBSOLETE: use IDC_ARROW */
#define IDC_SIZENWSE        MAKEINTRESOURCE(32642)
#define IDC_SIZENESW        MAKEINTRESOURCE(32643)
#define IDC_SIZEWE          MAKEINTRESOURCE(32644)
#define IDC_SIZENS          MAKEINTRESOURCE(32645)
#define IDC_SIZEALL         MAKEINTRESOURCE(32646)
#define IDC_NO              MAKEINTRESOURCE(32648) /*not in win3.1 */
#if(WINVER >= 0x0500)
#define IDC_HAND            MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */
#define IDC_APPSTARTING     MAKEINTRESOURCE(32650) /*not in win3.1 */
#if(WINVER >= 0x0400)
#define IDC_HELP            MAKEINTRESOURCE(32651)
#endif /* WINVER >= 0x0400 */
В этом коде
Цитата Сообщение от ne_k Посмотреть сообщение
CURSORINFO pc;
pc.cbSize = sizeof(CURSORINFO);
GetCursorInfo(&pc);
GetCursorInfo получает инфу о курсоре занося её в поля CURSORINFO
http://msdn.microsoft.com/ru-ru/libr...(v=vs.85).aspx
ne_k
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 5
30.12.2012, 17:08  [ТС]     Какой курсор отображается? #3
Спасибо) Меня интересует реализация. В интернете много вопросов о позиции курсора, глобальное нажатие кнопок, но по своему вопросу ничего не нашел.
В Билдере узнать какой курсор на форме просто:
C++
1
if( Form1->Cursor == crDefault )//действие
Однако мне нужна другая прога, лучше ведь не заморачиваться с поиском конкретного окна? Поэтому просто пытаюсь глобально отследить изменение этого самого курсора.

Что-то типа:
C++
1
if( ... == IDC_ARROW)
-=ЮрА=-
Заблокирован
Автор FAQ
30.12.2012, 17:17     Какой курсор отображается? #4
Цитата Сообщение от ne_k Посмотреть сообщение
Поэтому просто пытаюсь глобально отследить изменение этого самого курсора.
- опиши задание детальней. Я попробую осознать что ты хочешь
ne_k
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 5
30.12.2012, 18:57  [ТС]     Какой курсор отображается? #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- опиши задание детальней. Я попробую осознать что ты хочешь
Хм...попоробую Допустим есть браузер. В нем наводя на ссылку курсор становится IDC_HAND, на белый фон IDC_ARROW, а в какой-нибудь флэш игре вообще исчезает.
В моей программе (она отслеживает эти изменения глобально): если курсор становится IDC_HAND, то выдается сообщение, если IDC_ARROW - ничего не происходт. Это всего лишь пример.
-=ЮрА=-
30.12.2012, 19:11
  #6

Не по теме:

ne_k, посмотри хуки на мышь

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2013, 21:34     Какой курсор отображается?
Еще ссылки по теме:

C++ Как определять какой метод должен быть статическим, а какой нет?
C++ Курсор мыши
C++ Найти с какой стороны цикл будет находить 0 скорее и на какой позиции он стоит

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

Или воспользуйтесь поиском по форуму:
ne_k
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 5
04.01.2013, 21:34  [ТС]     Какой курсор отображается? #7
С - быстрый способ, ну а я еще попробую через autoIt, давно хотел изучить его. Там то функций для управления окнами мышью и элементами навалом, а заодно и сделаю набор программ и драйверов для тихой установки
Yandex
Объявления
04.01.2013, 21:34     Какой курсор отображается?
Ответ Создать тему
Опции темы

Текущее время: 17:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru