动态改变光标型状.
常见问题 动态载入资源文件中光标时会闪动得厉害
HCURSOR hCur = ::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1));
::SetCursor(hCur);
记得有人说过在加载程序的时候不要加载默认的光标 然后再动态在程序中设置就不会闪了。。。不知道怎么弄?
只要不要让光标闪就行了.
问题点数:20、回复次数:7Top
1 楼Mackz(在相互)回复于 2005-11-02 01:44:51 得分 0
怎么会闪,你在哪里调用的?Top
2 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-11-02 09:28:23 得分 20
1.在WM_SETCURSOR消息里改变
2.SetClassLong(m_hWnd, GCL_HCURSOR, NULL);
然后在WM_MOUSEMOVE里改变Top
3 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2005-11-02 09:47:47 得分 0
就你说的这样
HCURSOR hCur = ::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1));
::SetCursor(hCur);
不灰闪!!你不会是一直调用了上面2句吧??
Top
4 楼mythma(~a za, a za,fighting!fighting!fighting!fighting!fi)回复于 2005-11-02 10:05:44 得分 0
在WM_SETCURSOR消息里改变,不一定在WM_MOUSEMOVE里吧。
需要换换就行了
Top
5 楼smallfishff(天枫十一郎)回复于 2005-11-02 13:31:24 得分 0
三楼正解!感谢.Top
6 楼smallfishff(天枫十一郎)回复于 2005-11-02 13:49:53 得分 0
又有问题了...鼠标移动到指定区域中就可以改变 但移出时却不能还原
只能移动到某个控件上才能还原
请问还原成默认鼠标指针是用什么语句/??Top
7 楼gukiki111()回复于 2005-11-24 17:06:38 得分 0
应该在设置一个BOOL型全局变量x,在鼠标移动到指定区域时,使之为TRUE, 移出时使之为FALSE,然后在WM_SETCURSOR消息映射函数中,判断x为TRUE,则执行光标的改变,为FALSE则不执行,这样就不会出现光标移出指定区域时无法还原默认鼠标啦!
BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if( x)
{
::SetCursor(hCur);
return TRUE;
}
else
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}Top




