我将directx嵌入到我的应用程序的子窗口中,并希望仅当它位于客户区域时隐藏窗口光标。我知道如何在一般情况下隐藏光标,并且如果仅在不显示任何客户区域时显示光标,才设法找到一个移动示例,但对此没有帮助。 如何仅在光标位于特定客户区域(/子窗口)时才隐藏光标?将鼠标光标隐藏在窗口中的特定客户区域
编辑: 这是接近我已经得到了,但是光标闪烁不可预知的(如鼠标移动),而在DX区域
case WM_SETCURSOR:
{
static bool bCursorVisible = TRUE;
if(hWnd!=hwD3DArea && !bCursorVisible)
{
ShowCursor((bCursorVisible=TRUE));
}
else if(hWnd==hwD3DArea && bCursorVisible)
{
ShowCursor((bCursorVisible=FALSE));
return TRUE;
}
}
break;
EDIT2: AHAH! 你必须使用wParam中,而不是在的hWnd此消息 这里的工作代码:
case WM_SETCURSOR:
{
static bool bCursorVisible = TRUE;
if(((HWND)wParam)!=hwD3DArea && !bCursorVisible)
{
ShowCursor((bCursorVisible=TRUE));
}
else if(((HWND)wParam)==hwD3DArea && bCursorVisible)
{
ShowCursor((bCursorVisible=FALSE));
return TRUE;
}
}
break;
,它不起作用,因为它似乎是画一个小东西,然后用指针覆盖它,如果你推出然后又回来(这是我第一次尝试。)我找到了一个解决方案。将尽快添加信息。 – user980058 2012-07-09 12:15:20