怎么获取当前光标的类型?是插入符,还是箭头
如何获取当前光标的类型?是插入符,还是箭头?
CURSORINFO ci;
ci.cbSize=sizeof CURSORINFO;
::GetCursorInfo(&ci); //这个结构体没有光标类型信息
//DrawIconEx 也不行罢
HCursorhandle=CopyImage(ci.hCursor,IMAGE_CURSOR,30,30,LR_COPYRETURNORG);
//复制位图也没用
ICONINFO iconif;
::GetIconInfo(ci.hCursor,&iconif); //获得位图也没用。我要的是类型,不是自定义的光标
有什么办法吗?
------解决方案--------------------
还以为你解决了呢。
typedef struct {
DWORD cbSize;
DWORD flags;
HCURSOR hCursor;
POINT ptScreenPos;
} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
这个结构体中的hCursor保存就是光标句柄HCURSOR。
既然是远程主机的光标改变,那就是服务器端程序,服务器端程序通过GetCursorInfo得到光标的相关信息,然后通过网络通信告诉控制端,即客户端。你客户端得到信息,自己绘制即可。
自己定义一个enum类型,标识所有的光标类型
typedef enum
{
CURSOR_ARROW,
CURSOR_WAIT,
CURSOR_XXXX,
....
};
比如得到远程主机的光标的忙的状态,即对应CURSOR_WAIT,那么你的客户端自己绘制一个Wait光标即可。
------解决方案--------------------
hCursor不看吗 ?与LoadCursor(NULL, IDC_ARROW/...)得到的HCURSOR比对一下看看
CURSORINFO ci;
ci.cbSize=sizeof CURSORINFO;
::GetCursorInfo(&ci); //这个结构体没有光标类型信息
//DrawIconEx 也不行罢
HCursorhandle=CopyImage(ci.hCursor,IMAGE_CURSOR,30,30,LR_COPYRETURNORG);
//复制位图也没用
ICONINFO iconif;
::GetIconInfo(ci.hCursor,&iconif); //获得位图也没用。我要的是类型,不是自定义的光标
有什么办法吗?
------解决方案--------------------
还以为你解决了呢。
typedef struct {
DWORD cbSize;
DWORD flags;
HCURSOR hCursor;
POINT ptScreenPos;
} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
这个结构体中的hCursor保存就是光标句柄HCURSOR。
既然是远程主机的光标改变,那就是服务器端程序,服务器端程序通过GetCursorInfo得到光标的相关信息,然后通过网络通信告诉控制端,即客户端。你客户端得到信息,自己绘制即可。
自己定义一个enum类型,标识所有的光标类型
typedef enum
{
CURSOR_ARROW,
CURSOR_WAIT,
CURSOR_XXXX,
....
};
比如得到远程主机的光标的忙的状态,即对应CURSOR_WAIT,那么你的客户端自己绘制一个Wait光标即可。
------解决方案--------------------
hCursor不看吗 ?与LoadCursor(NULL, IDC_ARROW/...)得到的HCURSOR比对一下看看