MFC Slider控件 去掉边上的虚线

转载:https://blog.csdn.net/ctbinzi/article/details/4503106 

工作中没有小事:点石成金,滴水成河,只有认真对待自己所做的一切事情,才能克服万难,取得成功。

使用Slider控件,发现点击拖动滑条后控件周边多了虚线边框,设置了很多属性都没有用,发现就是由于鼠标点击后获得了焦点导致的,这样一个小问题想了好久,我们在Slider的自绘函数里把焦点状态去掉。

通过uItemState可以知道目前列表项的状态,其值如下: 
    CDIS_SELECTED 选中状态
    CDIS_GRAYED 灰化状态
    CDIS_DISABLED 禁止状态
    CDIS_CHECKED 标记状态 
    CDIS_FOCUS 焦点状态
    CDIS_DEFAULT 默认状态
    CDIS_HOT 热点状态
    CDIS_MARKED 标注状态
    CDIS_INDETERMINATE 不定状态

void CXXXDlg::OnCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    if (pNMCD)
    {
        pNMCD->uItemState &= ~(CDIS_FOCUS);
    }
    *pResult = 0;
}

这样就是控件获得焦点,它也不会自绘出虚线了。

原文地址:https://www.cnblogs.com/chechen/p/13200185.html