关于VC++ CButton的一个问题
在基于对话框的APPwizard的程序中,我依据书中创建一个按钮,然后用SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1)));...
在基于对话框的APPwizard的程序中,我依据书中创建一个按钮,然后用SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1)));资源都有的,编辑、连接都没问题,就是出不来结果,请高手指点!万分感激。
按钮单击
void CBtn::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));
CButton::OnMouseMove(nFlags, point);
}
我继承了CButton,上面加了OnMouseMove,并在那个按钮上关联了这个类,还是没反应,那个五级举人的办法不行,我试过了,还有对BN_SETFORCE获得焦点,然后在此函数下使用SetCursor函数!不会。能说的详细点吗? 展开
按钮单击
void CBtn::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));
CButton::OnMouseMove(nFlags, point);
}
我继承了CButton,上面加了OnMouseMove,并在那个按钮上关联了这个类,还是没反应,那个五级举人的办法不行,我试过了,还有对BN_SETFORCE获得焦点,然后在此函数下使用SetCursor函数!不会。能说的详细点吗? 展开
4个回答
展开全部
仅仅使用SetCursor是不够的。要自己写一个CButton,然后在里面响应OnSetCursor才行,还有重写OnHitTest等,这样才完整,否则,按钮重绘时会自动改回来。
如果你想省事,那么响应WM_MOUSEMOVE消息吧,把 SetCursor放到里面。但是这样会闪烁的。
★对于问题补充的回答:
事实上你不必特意的关联按钮类,只要你的按钮类是从CButton继承来的,那么只要为你的按钮添加一个控件变量,把变量的类型改为你自己的按钮类就可以了。
★第二次补充:
干脆你去www.codeproject.com上去下一个MFC按钮控件,看看人家是怎么弄的.事实上很简单.
如果你想省事,那么响应WM_MOUSEMOVE消息吧,把 SetCursor放到里面。但是这样会闪烁的。
★对于问题补充的回答:
事实上你不必特意的关联按钮类,只要你的按钮类是从CButton继承来的,那么只要为你的按钮添加一个控件变量,把变量的类型改为你自己的按钮类就可以了。
★第二次补充:
干脆你去www.codeproject.com上去下一个MFC按钮控件,看看人家是怎么弄的.事实上很简单.
展开全部
SetCursor有两个,一个是CButton的内部方法,还有一个是API函数。实验发现,要使用CButton的SetCursor方法,不仅要自己新建一个CButton类,还要在资源编辑器中将button和你新建的button类关联,还要将button的属性设置为“icon,flat”,否则,CButton::SetCursor函数调用将失败
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该知道SetCursor是用来设置鼠标的吧?那么,下面就要看你在什么事件里面响应的了。
-->问题就出在,你鼠标单击的那一刹那产生作用了,如果你想看清楚的话应该用楼下的那个事件,不对,现在应该是楼上了。
--〉而且,你多了一个右括弧 ^_^
-->问题就出在,你鼠标单击的那一刹那产生作用了,如果你想看清楚的话应该用楼下的那个事件,不对,现在应该是楼上了。
--〉而且,你多了一个右括弧 ^_^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是想,鼠标放在按钮上,出现你创建的鼠标样式啊!应该建立消息函数,BN_SETFORCE获得焦点,然后在此函数下使用SetCursor函数!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询