VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1702|回复: 2

CScrollBar 为什么上边箭头无焦点?

[复制链接]
35_avatar_middle
最佳答案
0 
online_vip 发表于 2019-11-26 12:31:22 | 显示全部楼层 |阅读模式
本帖最后由 cheating_plugin 于 2019-11-26 17:51 编辑

CScrollBar 为什么上边箭头无焦点?

CRect rect;
        GetWindowRect(&rect);
        ScreenToClient(&rect);
        rect.left = rect.right - GetSystemMetrics(SM_CXVSCROLL);
        m_CScrollBar.Create(WS_VISIBLE | SB_VERT, rect, this, 4051);
        m_CScrollBar.EnableScrollBar(ESB_ENABLE_BOTH);
        m_CScrollBar.SetScrollRange(0, 1000);
        m_CScrollBar.SetScrollPos(500);

void CMyListCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
        // TODO: Add your message handler code here and/or call default
        ShowScrollBar(SB_BOTH, FALSE);
        CListCtrl::OnNcCalcSize(bCalcValidRects, lpncsp);
}

BOOL CMyListCtrl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
        // TODO: Add your message handler code here and/or call default
        Scroll(CSize(0, -zDelta));
        m_CScrollBar.SetScrollPos(500);
        m_CScrollBar.Invalidate();
        return CListCtrl::OnMouseWheel(nFlags, zDelta, pt);
}

void CMyListCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
        // TODO: Add your message handler code here and/or call default
        if (4051 == pScrollBar->GetDlgCtrlID())
        {
                switch (nSBCode)
                {
                case SB_LINEUP://所要处理的CSliderCtrl控件ID
                {
                        //处理

                        //AfxMessageBox(_T("SB_LINEUP"));
                        break;
                }
                case SB_LINEDOWN://所要处理的CSliderCtrl控件ID
                {
                        //处理
                        //AfxMessageBox(_T("SB_LINEDOWN"));
                        break;
                }
                case SB_PAGEUP://所要处理的CSliderCtrl控件ID
                {
                        //处理
                        //AfxMessageBox(_T("SB_PAGEUP"));
                        break;
                }
                case SB_PAGEDOWN://所要处理的CSliderCtrl控件ID
                {
                        //处理
                        //AfxMessageBox(_T("SB_PAGEDOWN"));
                        break;
                }
                case SB_ENDSCROLL:
                        m_CScrollBar.SetScrollPos(500);
                        break;
                default:
                        break;
                }
        }
        m_CScrollBar.Invalidate();
        CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}


什么都是好的,就是CScrollBar上面的箭头居然没有焦点?鼠标按下也没有SB_LINEUP消息,为什么?




上一篇:map 好慢
下一篇:陷入死循环怎么办
35_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-11-26 18:01:46 | 显示全部楼层
总之一句话:我用鼠标点击上边箭头的时候,根本没有SB_LINEUP消息
58_avatar_middle
最佳答案
8 
online_vip 发表于 2019-11-28 12:05:08 | 显示全部楼层
最好找些教程去学,不要想起来什么就搞什么,这样效率很低的,我们也没时间帮你调试,更何况没有工程,还得自己建项目。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-12-8 06:54

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表