О WM_MOUSEHOVER, элементах управления и всплывающих подсказках
-
19-09-2019 - |
Вопрос
У меня есть этот код в цикле переключения (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.