gpt4 book ai didi

c++ - OnHScroll 或 OnVScroll 执行两次

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:25 28 4
gpt4 key购买 nike

我有一个 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

一个简单的 switchif 就足以解决这个问题。

关于c++ - OnHScroll 或 OnVScroll 执行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25123669/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com