本文整理汇总了C++中Window::GetCursor方法的典型用法代码示例。如果您正苦于以下问题:C++ Window::GetCursor方法的具体用法?C++ Window::GetCursor怎么用?C++ Window::GetCursor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Window
的用法示例。
在下文中一共展示了Window::GetCursor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DEWindowProc
LRESULT CALLBACK DEWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
Window *form = reinterpret_cast<Window*>(GetWindowLongPtr(hWnd, GWLP_USERDATA));
if (form == nullptr) {
return DefWindowProc(hWnd, msg, wParam, lParam);
}
try {
form->OnMessageReceived(MessageInfo(msg, wParam, lParam));
switch (msg) {
case WM_CLOSE: {
form->CloseButtonClicked(Info());
return 0;
}
case WM_SIZE: {
form->RelimitCursor();
form->SizeChanged(SizeChangeInfo(wParam, lParam));
return 0;
}
case WM_SETCURSOR: {
if (form->_cursorOverrideCount == 0) {
form->GetCursor().Set();
}
form->OnSetCursor(Info());
return true;
}
case WM_MOVING: {
form->RelimitCursor();
return 0;
}
case WM_MOVE: {
form->RelimitCursor(); // TODO need hooks?
return 0;
}
case WM_KEYDOWN: {
form->OnKeyDown(KeyInfo(wParam, lParam));
return 0;
}
case WM_KEYUP: {
form->OnKeyUp(KeyInfo(wParam, lParam));
return 0;
}
case WM_CHAR: {
form->OnText(TextInfo(wParam, lParam));
return 0;
}
case WM_GETDLGCODE: { //TODO: don't know if it's right
return DLGC_WANTALLKEYS;
}
case WM_IME_SETCONTEXT: { // same as above
return IME_CAND_READ;
}
case WM_IME_CHAR: {
form->OnText(TextInfo(wParam, lParam));
return 0;
}
case WM_MOUSEWHEEL: {
POINT p;
p.x = p.y = 0;
if (!ClientToScreen(hWnd, &p)) {
throw Core::SystemException(_TEXT("cannot convert between scopes"));
}
form->OnMouseScroll(MouseScrollInfo(wParam, lParam, Math::Vector2(p.x, p.y)));
return 0;
}
case WM_MOUSEMOVE: {
form->OnMouseMove(MouseMoveInfo(wParam, lParam));
return 0;
}
case WM_MOUSELEAVE: {
form->_ting = false;
form->OnMouseLeave(Info());
return 0;
}
case WM_MOUSEHOVER: {
form->_ting = false;
form->OnMouseHover(MouseButtonInfo(wParam, lParam));
return 0;
}
case WM_LBUTTONDOWN: {
form->OnMouseDown(MouseButtonInfo(wParam, lParam, MouseButton::Left, GetKeyState(VK_MENU) < 0));
return 0;
}
case WM_LBUTTONUP: {
form->OnMouseUp(MouseButtonInfo(wParam, lParam, MouseButton::Left, GetKeyState(VK_MENU) < 0));
return 0;
}
case WM_RBUTTONDOWN: {
form->OnMouseDown(MouseButtonInfo(wParam, lParam, MouseButton::Right, GetKeyState(VK_MENU) < 0));
return 0;
}
case WM_RBUTTONUP: {
form->OnMouseUp(MouseButtonInfo(wParam, lParam, MouseButton::Right, GetKeyState(VK_MENU) < 0));
return 0;
}
case WM_MBUTTONDOWN: {
form->OnMouseDown(MouseButtonInfo(wParam, lParam, MouseButton::Middle, GetKeyState(VK_MENU) < 0));
return 0;
//.........这里部分代码省略.........