当前位置: 首页>>代码示例>>C++>>正文


C++ Window::GetCursor方法代码示例

本文整理汇总了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;
//.........这里部分代码省略.........
开发者ID:lukedan,项目名称:DoodleEngine,代码行数:101,代码来源:Window.cpp


注:本文中的Window::GetCursor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。