问题描述
- MFC中滑块拖动闪烁的问题
-
void CZdview::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (*pScrollBar == m_slider1)
{int pos11 = m_slider1.GetPos(); SetDlgItemInt(IDC_EDIT1,pos11); m_slider1.SetPos(pos11); CMainFrame * pMainFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;//获取当前窗口指针,存到pMainFrame中 pMainFrame->MoveArm(1,pos11); } 我在滑块中加了调用指针这段程序后拖动滑块,滑块所在界面就会不停闪烁,是什么问题?该怎么解决啊?我是新手,大神们帮帮忙啊。
解决方案
获取到 Slider 的数值后,为什么还要再调用 m_slider1.SetPos(pos11);?
你没有修改它的数值。
解决方案二:
如果是自己实现的滚动,通常是自己绘画的范围超过了客户区,这时候自己设置客户区需要的总大小,然后滚动条就会自动在合适的时候出现。滚动过程实际上是在OnPaint()函数中根据当前滚动的位置进行绘画对应范围的内容。
如果是windows自己实现的,显然你的这个做法就是多余的了
时间: 2024-10-03 08:19:24