关于SetCursor的疑问
写一个游戏,其中一个功能是在屏幕的不同区域,显示不同的鼠标光标.
上网找了找,总结起来得到如下实现:
[code=C/C++]HCURSOR hCursor = LoadCursor(hInstance, IDC_NO) ;
while (1)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (WM_QUIT == msg.message)
break ;
TranslateMessage(&msg) ;
DispatchMessage(&msg) ;
}
SetCursor(hCursor) ;
}code]
结果在程序窗口干脆看不到光标了.VC2005在Win7下编译的.
如何做才能实现呢?
[解决办法]
检查下LoadCursor是否加载成功
可以在
SetCursor(hCursor) ;
ShowCursor(TRUE);
[解决办法]
BOOL CDockBarCtrl::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { if (nHitTest==HTSIZE) if (m_dwStyle&(CBRS_ORIENT_HORZ)) SetCursor(LoadCursor(NULL,IDC_SIZENS)); else SetCursor(LoadCursor(NULL,IDC_SIZEWE)); else return CControlBar::OnSetCursor(pWnd, nHitTest, message); return TRUE;}
[解决办法]
添加处理WM_SETCURSOR消息