VC中滑块控件的使用问题 急!!!!各位大牛,非常急切的想得到大家的帮助:添加一个滑块上去,水平滑块,当选中滑块以后,滑动鼠标滚轮,鼠标滚轮往下滚,滑块往右滑动,也就是说用GetPos函数获取的数据会增大,但是鼠标滚轮往下滚的时候,一般是减小啊!!!那么应该如何做,才能实现,鼠标滚轮往下滚的时候,滑块往左滑动啊???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么滚动鼠标滚轮会使得滑块也滑动,而当选中滑块以后,滚动鼠标滚轮,并没用响应OnMouseWheel函数,这里面的机制是怎么样的???哪位大牛帮帮忙啊!!!! MSDN上说可以通过鼠标软件来修改滚轮效果,但是修改了可能就所有的都变了。你这个问题估计只有重新绘制slider了 这个可以啊,重载slider的鼠标滚轮事件,直接返回就是了 不行啊!!!能不能把代码稍微呈现一下,OnMouseWheel函数返回的是BOOL型的哈,那我把return CSliderCtrl::OnMouseWheel(nFlags, zDelta, pt)这句给注释掉,然后返回0或者1,鼠标滚轮滚动的时候滑块还是跟着动啊!!! 调试发现,当选定滑块以后,滑动鼠标滚轮,压根就不进入OnMouseWheel函数中去?????根本就没调用这个函数!!!!实在搞不懂了!!!!! 简单:LRESULT CYourSlider::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class if(message==WM_MOUSEWHEEL) return 0; return CSliderCtrl::DefWindowProc(message, wParam, lParam);} 首先说句谢谢!!!!!!!!!!!!! 拖一个滑块控件到对话框上,然后生成一个类,让这个类从CSliderCrl类继承下来,然后重载DefWindowPoc函数,添加if(message==WM_MOUSEWHEEL) return 0;这行代码,是这样撒??但是还是不行,加好以后,当选中滑块,滚动鼠标滑轮,滑块还是跟着在动啊?? 在PretranslateMessage函数中截获。绝对可以,我屏蔽过 放PreTranslate 中是这样:if(pMsg->message==WM_MOUSEWHEEL) return TRUE;这2中方法要看 slider 个数 , 个数 多 派生类 方便。至于在dlg 响应 不行,是因为 slider是 子窗口, 这时鼠标 消息 进入 slider 了 (鼠标被slider 捕获 了) 类没改???什么意思???我拖一个滑块控件到对话框上,然后利用想到生成一个类,从CSliderCtrl中继承下来,然后在新类中重载DefWindowPoc函数,加入你说的那行代码,是这样的不??? 我就用一个滑块!!!在PretranslateMessage函数中我是写成if(pMsg->message==WM_MOUSEWHEEL) return TRUE;这样的啊!!但是不行额。嗨。。纠结啊!! 原来:CSliderCtrl m_Slider;改后:CYourSliderCtrl m_Slider;不过一个slider 在 PretranslateMessage 应该是可以的。多个话 要检查 hWnd 是不是 正确 另外,这只是习惯问题。现代人的阅读习惯是从左到右、从上到下,所以“左”和“上”表示回到原点,表示减小,“右”和“下”表示增大。你想想屏幕或窗口坐标系的设定不也是如此么。如果使用方向键操作滑块,不也是这样对应的么。还有spin控件的使用习惯也是这样的。 坐标转换出错! 软件工程师和研发工程师是什么样的职位? socket函数问题! 关于全局钩子。全局钩子要放在dll中,我做了之后怎么没有用?谁给我讲讲,键盘的就可以了。 请教朋友:java,v#和vc程序员现在在需求量上谁大,以后呢? 有关toolbar中加入combobox的一系列问题,100分等候 如何将整数转化为LPCSTR VC关于ADO开发中的问题!急 请问怎样使线程间不互相干扰? 这种加密方法是怎么编的? 怎么设置工具栏不可移动了??? 怎么修改CString
这个可以啊,重载slider的鼠标滚轮事件,直接返回就是了
LRESULT CYourSlider::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if(message==WM_MOUSEWHEEL) return 0; return CSliderCtrl::DefWindowProc(message, wParam, lParam);
}
拖一个滑块控件到对话框上,然后生成一个类,让这个类从CSliderCrl类继承下来,然后重载DefWindowPoc
函数,添加if(message==WM_MOUSEWHEEL) return 0;这行代码,是这样撒??但是还是不行,加好以后,当选中滑块,滚动鼠标滑轮,滑块还是跟着在动啊??
if(pMsg->message==WM_MOUSEWHEEL) return TRUE;
这2中方法要看 slider 个数 , 个数 多 派生类 方便。至于在dlg 响应 不行,是因为 slider是 子窗口, 这时鼠标 消息 进入 slider 了 (鼠标被slider 捕获 了)
CSliderCtrl m_Slider;改后:
CYourSliderCtrl m_Slider;不过一个slider 在 PretranslateMessage 应该是可以的。
多个话 要检查 hWnd 是不是 正确