OnSetCursor函数中,为什么光标没有改变符号?

microchu 2005-09-18 11:27:02
程序想实现在鼠标移动到对话框边缘(这是一个none border对话框)时改变鼠标的形状,但不知道为什么,光标没有发生变化.
BOOL CScrollTextDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CPoint pt;
::GetCursorPos(&pt);
if (nHitTest == HTBORDER)
{
CString tmp;
tmp.Format("%d:%d", pt.x,pt.y);
m_lbContent.SetWindowText(tmp);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_UPARROW));
}

return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
...全文
548 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyelf 2005-09-19
if (nHitTest == HTBORDER)
{
CString tmp;
tmp.Format("%d:%d", pt.x,pt.y);
m_lbContent.SetWindowText(tmp);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_UPARROW));
return TRUE; // add this
}
回复
bager 2005-09-19
应当修改ONSETCURSOR里原有的return语句

BOOL CCDlgSetCursorDemoDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CPoint pt;
::GetCursorPos(&pt);
if (nHitTest == HTBORDER)
{
CString tmp;
tmp.Format("%d:%d", pt.x,pt.y);
m_lbContent.SetWindowText(tmp);
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_UPARROW));
}
else
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
return TRUE;
//return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
回复
huwei001982 2005-09-19
设置新的光标后要立即 return TRUE;

否则系统就会调用默认的函数
回复
zhaolaoxin 2005-09-18
对于none border对话框是否不会激活这个函数
回复
发动态
发帖子
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
社区公告
暂无公告