本文整理汇总了C++中UIControl::DispatchMouseMessage方法的典型用法代码示例。如果您正苦于以下问题:C++ UIControl::DispatchMouseMessage方法的具体用法?C++ UIControl::DispatchMouseMessage怎么用?C++ UIControl::DispatchMouseMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UIControl
的用法示例。
在下文中一共展示了UIControl::DispatchMouseMessage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleMouseMessage
// 处理窗口的鼠标消息
void UIWindow::HandleMouseMessage(UINT message, WPARAM wParam, LPARAM lParam) {
if (WM_MOUSELEAVE == message) { // 鼠标离开
SetCurrentMouseControl(NULL);
mb_mouse_in = FALSE;
return;
}
if (WM_MOUSEMOVE == message) { // 鼠标移动
if (! mb_mouse_in) {
TRACKMOUSEEVENT track_mouse_event;
track_mouse_event.cbSize = sizeof(TRACKMOUSEEVENT);
track_mouse_event.dwFlags = TME_LEAVE;
track_mouse_event.hwndTrack = GetHWND();
mb_mouse_in = ::TrackMouseEvent(&track_mouse_event);
}
}
if (WM_LBUTTONDOWN == message) { ::SetFocus(hwnd_); } // 如果鼠标左键按下,设置此窗口活动
// 关键之处,如果根控件存在,则由根控件来寻找目前鼠标在哪个控件上,在由找到的控件处理此消息
if (mp_root_control) {
UIPoint pt((short)LOWORD(lParam), (short)HIWORD(lParam));
UIControl *pMouseControl = mp_root_control->LookupMouseFocusedControl(pt);
if (WM_MOUSEMOVE == message) { SetCurrentMouseControl(pMouseControl); }
pMouseControl->DispatchMouseMessage(message, wParam, lParam);
}
}