代码如下BOOL CTVMDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if(m_hcursor)
{
HCURSOR hOld = ::SetCursor(m_hcursor);
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}在窗口的构造函数中
m_hcursor = LoadCursorFromFile("Move_Vnd.cur");
但是光标没有改变
{
// TODO: Add your message handler code here and/or call default
if(m_hcursor)
{
HCURSOR hOld = ::SetCursor(m_hcursor);
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}在窗口的构造函数中
m_hcursor = LoadCursorFromFile("Move_Vnd.cur");
但是光标没有改变
BOOL CTVMDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if(m_hcursor)
{
HCURSOR hOld = ::SetCursor(m_hcursor);
return TRUE; //直接返回,不调用默认处理
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
不要return CDialog::OnSetCursor(pWnd, nHitTest, message);
否则光标会被CDialog::OnSetCursor()再设回去编程默认的。
::SetCaretPos
当然如果你想在某个控件上使用光标的话可以:
BOOL CTVMDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if(m_hcursor)
{
if(pWnd==GetDlgItem(控件ID))
{
HCURSOR hOld = ::SetCursor(m_hcursor);
return TRUE;
}
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}