作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 C++ MFC 程序,我正在尝试使用几个水平 slider 。
我已经将 ON_WM_HSCROLL()
添加到我的 Message Map 并且我有这个函数来处理任何 slider 的变化:
void CAppDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
switch (pScrollBar->GetDlgCtrlID()) {
case IDCAM1_ZOOMSLIDE:
// do stuff
return;
case IDCAM2_ZOOMSLIDE:
// do stuff
return;
default:
return;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
我尝试在开关线上放置一个断点,发现每次更改 slider 时,OnHScroll() 都会执行 2 次。
这是为什么?我该如何改变这种行为?
谢谢
最佳答案
正如史蒂夫韦伦斯所建议的那样,
我没有使用 nSBCode
。
OnHScroll
第一次使用 nSBCode=SB_PAGELEFT
执行,第二次使用 nSBCode=SB_ENDSCROLL
。
一个简单的 switch
或 if
就足以解决这个问题。
关于c++ - OnHScroll 或 OnVScroll 执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25123669/
我有一个派生的MFC CFormView类(CMyFormView),我必须实现自己的OnVScroll函数。 我的CMyFormView用于多个对话框资源,主要用于重新实现OnCtlColor()函
我有一个 C++ MFC 程序,我正在尝试使用几个水平 slider 。 我已经将 ON_WM_HSCROLL() 添加到我的 Message Map 并且我有这个函数来处理任何 slider 的变化
我是一名优秀的程序员,十分优秀!