用wtl做一个窗口类,需要将窗口客户区光标设置为自定义光标IDC_PENCIL,代码如下,但光标是改变了,而当鼠标移动到滚动条的时候光标不是系统默认的箭头光标,而是自定义的光标IDC_PENCIL;问题是如何将客户区的光标设置为自定义光标IDC_PENCIL,而当鼠标移动到滚动条的时候将光标设置为系统默认的箭头光标?
...........................代码如下................................class CSourceView :
public CWindowImpl<CSourceView>
{
...
private:
HCURSOR curCursor;
...
public:
CSourceView()
{
...
curCursor=AtlLoadCursor(IDC_PENCIL); //自定义类似画笔的光标
...
} BEGIN_MSG_MAP(CSourceView)
...
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
...
END_MSG_MAP() LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
::SetCursor(curCursor);
return 0;
}
}
...........................代码如下................................class CSourceView :
public CWindowImpl<CSourceView>
{
...
private:
HCURSOR curCursor;
...
public:
CSourceView()
{
...
curCursor=AtlLoadCursor(IDC_PENCIL); //自定义类似画笔的光标
...
} BEGIN_MSG_MAP(CSourceView)
...
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
...
END_MSG_MAP() LRESULT OnSetCursor(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
::SetCursor(curCursor);
return 0;
}
}
void CMyView::OnNcLButtonDown( UINT nHitTest, CPoint point)
{
if( (nHitTest & HTHSCROLL) || (nHitTest & HTVSCROLL) )
{
curCursor=::LoadCursor(NULL,IDC_ARROW);
}
}