你在使用的duilib的时候,用到Button控件,发现移动鼠标到上面还是标准的箭头,无法变成手型抓取的样子。
官方duilib下载:https://github.com/duilib/duilib
原因我不知道为啥,因为看到下载的duilib的demo里面,鼠标移动到上面的时候都变成手型了,自己写项目的时候发现,自己的项目里duilib的鼠标不会变了,然后去找解决办法了。
解决办法
在UIButton.cpp里UIEVENT_MOUSEMOVE的事件的响应里加上一句代码就好了
if( event.Type == UIEVENT_MOUSEMOVE )
{
::SetCursor(::LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)));
if( (m_uButtonState & UISTATE_CAPTURED) != 0 ) {
if( ::PtInRect(&m_rcItem, event.ptMouse) ) m_uButtonState |= UISTATE_PUSHED;
else m_uButtonState &= ~UISTATE_PUSHED;
Invalidate();
}
return;
}
加上是 ::SetCursor(::LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)));
就好了!
有什么问题欢迎留言询问,我会及时做出解答。