О WM_MOUSEHOVER, элементах управления и всплывающих подсказках

StackOverflow https://stackoverflow.com/questions/1192833

Вопрос

У меня есть этот код в цикле переключения (msg) внутри WindowProc в моем приложении с графическим интерфейсом.

случай WM_MOUSEMOVE:

         TRACKMOUSEEVENT tme;
         tme.cbSize = sizeof(TRACKMOUSEEVENT);
         tme.dwFlags = TME_HOVER;
         tme.dwHoverTime = 100;
         tme.hwndTrack = hwnd;
         TrackMouseEvent(&tme);
    break;
    case WM_MOUSEHOVER:
         DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), hwnd, AboutDlg);
    break;

Мне было интересно, могу ли я что-нибудь сделать, чтобы событие WM_MOUSEOVER происходило только тогда, когда я наводил курсор на элемент управления окном (в данном случае CHECKBUTTON)

Мне это нужно, потому что я хочу, чтобы какое-то объяснение этого флажка (я не хочу писать его на метке) появлялось, когда на него наведен курсор мыши.Мне не нужен ни DialogBox...есть ли какой-нибудь воздушный шар (или что-то без кнопки ОК), который появляется и исчезает вместо диалогового окна или окна сообщения?

Большое спасибо

Это было полезно?

Решение

Это называется подсказка.Часто они вообще не требуют отслеживания каких-либо событий мыши.Вы даже можете сделать их похожими на воздушные шары.Для начала прочитайте о них в MSDN.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top