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

Надпись возле указателя мыши

23.03.2016, 08:15. Показов 2019. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все никак не могу побороть надпись возле указателя мыши. Необходимо её перемещать вместе с мышью. Я в надписи брал координаты мыши.
Проблемы в следующем, если просто брать координаты и ставить в WM_MOUSEMOVE то остается как бы след при перемещении. Вопрос можно решить перерисовкой надписи прошлого состояний к примеру белым цветом, ну или перерисовкой экрана - след уже не виден, но затирается фоновое изображение.
Подскажите, может есть возможность, чтобы надпись возле мыши(динамическая) вела себя как указатель мыши?(т.е. не рисовалась на рабочем фоне окна(hdc).
листинг части кода, что делал я:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc, hdcC;
    static HBITMAP hdcBG;
    int x, y;
    TCHAR str = {};
    static HPEN hpen1, hpen2;
    static int sx, sy;
    switch (message)
    {
    case WM_SIZE:
        sx = LOWORD(lParam);
        sy = HIWORD(lParam);
        break;
    case WM_CREATE:
        hpen1 = CreatePen(PS_SOLID, 2, RGB(0, 0, 255));
        hpen2 = CreatePen(PS_SOLID, 2, RGB(0, 130, 0));
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        SelectObject(hdc, hpen2);
        for (x = 0; x < sx; x += 10 )
        {
            MoveToEx(hdc, x, 0, NULL);
            LineTo(hdc, x, sy);
        }
        for (y = 0; y < sy; y += 10)
        {
            MoveToEx(hdc, 0, y, NULL);
            LineTo(hdc, sx, y);
        }
        MoveToEx(hdc, 0, 0, NULL);
        LineTo(hdc, sx, sy);
        MoveToEx(hdc, sx, 0, NULL);
        LineTo(hdc, 0, sy);
        hdcBG = CreateCompatibleBitmap(hdc, sx, sy);
        EndPaint(hWnd, &ps);
        break;
    case WM_MOUSEMOVE:
        static WORD xPos, yPos, nSize;
        static TCHAR szBuf[80];
        hdc = GetDC(hWnd);
        SetTextColor(hdc, RGB(255, 255, 255));
        TextOut(hdc, xPos+15, yPos+15, szBuf, nSize);
        SetTextColor(hdc, RGB(0, 0, 0));
        xPos = LOWORD(lParam);
        yPos = HIWORD(lParam);
        nSize = wsprintf(szBuf, TEXT("(%d, %d)"), xPos, yPos);
        TextOut(hdc, xPos+15, yPos+15, szBuf, nSize);
        ReleaseDC(hWnd, hdc);
        break;
    case WM_DESTROY: 
        DeleteObject(hdcBG);
        DeleteObject(hpen1);
        DeleteObject(hpen2);
        PostQuitMessage(0); 
        break;
    default: return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2016, 08:15
Ответы с готовыми решениями:

Сообщения указателя мыши
Ребят, у меня такой вопрос - никак не выходит. Например: при нажатии левой кнопки мыши на том месте где расположен указатель - выводим...

Chart как показывать координаты мыши по графику возле курсора мыши!
Chart как показывать координаты мыши по графику возле курсора мыши! Когда двигаешь мышкой по графику координаты обновлялись!

Перемещение камеры при нажатой левой клавише мыши; проблемы с обзором мыши и видимостью указателя
Добрый день! У меня есть проект с кубом, кольцом и двумя кнопками из прошлой темы...

23
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
07.04.2016, 13:10
Студворк — интернет-сервис помощи студентам
DSpade, да в общем то он тебе не нужен, просто создай bmp рисунок любой с белым фоном. Либо отключи запуск дочернего child окна (ниже приведённый кусок кода закомменть /* kod */):
C++
1
2
3
4
5
6
7
8
9
10
11
if(wmId==IDM_About)
        {
            if(hChild==NULL)
            {
                wi=RegChild();
                if(LoadMask()==0)
                    MessageBox(hWnd, "Маска не загружена.", "Error!", MB_OK);
            }
            else
                MessageBox(hWnd, "Повторное создание не возможно.", "Мессага", MB_OK);
        }
Либо, вот тебе рисунок в другом формате, конвертни в bmp и убери цифру 3
Изображения
 
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
08.04.2016, 10:46  [ТС]
Как она у вас работала? там везде просит привести в типу LPCWSTR. Она без поддержки юникода чтоль?
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
08.04.2016, 12:00
Я тебе написал настройки проэкта для студии.
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
08.04.2016, 12:21  [ТС]
Izual, Лучше бы директивами, поставил себе последнюю VS, там все перемешали, попробую порыться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.04.2016, 12:21

Флаг страны возле курсора мыши
видел у друзей флаг страны возле курсора мыши при переключении раскладки и при наведении курсора в командную или адресную, или текстовые...

Настройки указателя мыши.
Работаю с виндой 7 уже полгода и решил задать вопрос по настройкам мыши. Винда не запоминает настройки по скорости движения указателя...

Переназначение действий указателя мыши
Добрый день. Возникла необходимость переназначить действия указателя мыши на клавиши(т.е. двигаем мышкой влево, нажимается, допустим, A,...

Кнопка убегающая от указателя мыши
Создать следующую программу: при наведении указателя мыши на кнопку ее координаты изменяются произвольным образом в пределах формы (кнопка...

Изменение указателя мыши на UseWaitCursor
Привет. хочу перед затяжным циклом изменить свойство формы UseWaitCursor на true, для того чтобы изменился курсор со стрелки на крутящуюся...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru