重写CListCtrl滚动条,遇到的问题。
隐藏CListCtrl的滚动条
方法1:
void CSkinListCtrl::PreSubclassWindow()
{
ModifyStyle(WS_BORDER, LVS_OWNERDRAWFIXED|LVS_NOSCROLL , SWP_NOSIZE); //LVS_NOSCROLL的去掉,影响了表头的LayOut无法被调用
2011.8.10
CHeaderCtrl *pHeader = GetHeaderCtrl();
m_HeaderEx.SubclassWindow(pHeader->GetSafeHwnd());
// m_HeaderEx.m_bLockHead = true; //锁定列表头
CRect rcWin;
GetWindowRect(&rcWin);
WINDOWPOS wp;
wp.hwnd = m_hWnd;
wp.cx = rcWin.Width();
wp.cy = rcWin.Height();
wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER;
SendMessage(WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);
CListCtrl::PreSubclassWindow();
}
通过这种方法可以去掉,滚动条,然后自己重写滚动条。后来发现出现了问题,一个是禁用滚动条后,表头的宽度不能再修改,一个是当列表时
item数量超过108个后,就不会再向下滚动,原因还没发现。
方法2:后来这样做,还是看CodeProject鬼佬的代码来弄的。
void CSkinListCtrl::PreSubclassWindow()
{
ModifyStyle(WS_BORDER, LVS_OWNERDRAWFIXED, SWP_NOSIZE); //LVS_NOSCROLL的去掉,影响了表头的LayOut无法被调用 2011.8.10
CHeaderCtrl *pHeader = GetHeaderCtrl();
m_HeaderEx.SubclassWindow(pHeader->GetSafeHwnd());
// m_HeaderEx.m_bLockHead = true; //锁定列表头
CRect rcWin;
GetWindowRect(&rcWin);
WINDOWPOS wp;
wp.hwnd = m_hWnd;
wp.cx = rcWin.Width();
wp.cy = rcWin.Height();
wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER;
SendMessage(WM_WINDOWPOSCHANGED, 0, (LPARAM)&wp);
CListCtrl::PreSubclassWindow();
}
void CSkinListCtrl::InitList() //在外面初始化的时候来调用
{
m_iScrollHeight = 0;
InitializeFlatSB(this->m_hWnd);
FlatSB_EnableScrollBar(m_hWnd, SB_BOTH, ESB_DISABLE_BOTH);
CWnd* pParent = GetParent();
//Create scrollbars at runtime
m_SkinVerticleScrollbar.Create(NULL, WS_CHILD|SS_LEFT|SS_NOTIFY|WS_VISIBLE|WS_GROUP,CRect(0,0,0,0), pParent);
m_SkinVerticleScrollbar.pListCtrl = this;
//call this to position the scrollbars properly
PositionScrollBars();
m_SkinVerticleScrollbar.SetScrollBkColor(RGB(221, 221, 221));
}
不知道为什么,我用了 InitializeFlatSB(this->m_hWnd);和FlatSB_EnableScrollBar(m_hWnd, SB_BOTH, ESB_DISABLE_BOTH);
滚动条依然无法被隐藏,只好再响应WM_NCCALCSIZE这个消息来隐藏滚动条。
void CSkinListCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp)
{
UpdateWindow();
ShowScrollBar(SB_VERT, FALSE);
ShowScrollBar(SB_HORZ, FALSE);
CListCtrl::OnNcCalcSize(bCalcValidRects, lpncsp);
}
需要源码的朋友,只需要下你的邮箱,我会将Codeprject的代码发给你。
转载于:https://www.cnblogs.com/yuzhould/archive/2011/10/24/4454967.html
重写CListCtrl滚动条,遇到的问题。相关推荐
- css 默认显示滚动条,css控制默认滚动条样式
针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分 2. ::-webkit-scrollbar-t ...
- iScroll5 API速查随记
版本 针对iScroll的优化.为了达到更高的性能,iScroll分为了多个版本.你可以选择最适合你的版本. 目前我们有以下版本: iscroll.js,这个版本是常规应用的脚本.它包含大多数常用的功 ...
- iScroll-5 API 中文版
**iScroll的版本** 针对iScroll的优化.为了达到更高的性能,iScroll分为了多个版本.你可以选择最适合你的版本. 目前我们有以下版本: iscroll.js,这个版本是常规应用的脚 ...
- iScroll5 API速查
版本 针对iScroll的优化.为了达到更高的性能,iScroll分为了多个版本.你可以选择最适合你的版本. 目前我们有以下版本: iscroll.js,这个版本是常规应用的脚本.它包含大多数常用的功 ...
- php 仪表盘模板,后台界面整体美化带仪表盘
该插件主要有两点: 一.优化了后台管理页面整体UI和部分布局,使新后台更易于操作和提升管理效率作为F型管理界面固定了左菜单和顶部(顶部菜单左移靠近logo排列,插件主题新增的也会排在左边,更符合操作习 ...
- C/C++:Windows编程—MFC基于CWnd自绘CListCtrl控件且带滚动条
文章目录 前言 效果图 代码思路 滚动条思路 完整代码 前言 由于工作需要,需要自绘类似CListCtrl那种控件 而且每项能带类似按钮的点击事件.所以笔者去进行研究,费了点时间写了个简单的自绘窗口 ...
- css滚动条样式重写(兼容ie和谷歌)
博主在工作中遇到修改滚动条样式的情况,效果如下: 1.重写滚动条样式,兼容IE,谷歌. 2.鼠标移入元素显示滚动条,鼠标移出隐藏滚动条. 注意: 1.互不干扰:首先说明的是谷歌的css滚动条样式的写法 ...
- 重写Winform的Textbox单行模式下滚动条。
C# Textbox,必须同时设置属性Multiline = True.ScrollBars=Horizontal.WordWrap=False才会显示出水平滚动条,且默认字体大小下,控件的Size. ...
- VC中CListCtrl设置滚动条在最下边的方法(MSDN中的例子)
当插入一条新的记录时同时设置: m_listReport.EnsureVisible(nColumn,FALSE);//设置滚动条到最下面 nColumn为当前记录条数 MSDN中: https:// ...
最新文章
- TENSORFLOW较好的博客
- 十五个常用的 Laravel 集合(Collection)
- POJ 1106 Transmitters(计算几何)
- 一天搞定CSS:字体font--04
- 《Java程序设计》第五周学习总结
- 宝塔php的opcache模块未载入,宝塔面板CPU负载过高使用opcache扩展的解决方法
- 阿里巴巴在内蒙古旱区试水物联网灌溉技术,一年省出1.5个西湖
- Mybatis mapper代理SqlMapConfig.xml配置详解
- php 重新组合数组_PHP数组组合
- Python爬虫(十二)_XPath与lxml类库
- 基于互联网的摄像测量系统(D 题)-- 2021 年全国大学生电子设计竞赛
- Java完全自学手册pdf,flutter中文网
- 联机侠控制台JAVA_联机侠控制台常见问题 | 我的世界 | MC世界侠
- UML2.51边译边学-接口
- PAT甲级 英文单词汇总
- 实验3 SQL的复杂多表查询以及视图
- jquery之购物商城
- 深入浅出Java23种设计模式(一)
- 艾伟也谈项目管理,创建敏捷团队
- php写入日志到文件
热门文章
- c语言16x32点阵显示汉字,点阵16*32滚屏显示汉字
- mysql 当前记录集不支持书签_存储过程 分页。当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。...
- 年度重磅!中国《营销自动化应用基准报告 2021》正式发布!
- 打破技术型思维:产品经理的门槛在门里面
- 神策数据埋点大升级,一站式埋点,360° 满足你的不同场景需求
- 神策 FM |「聚焦」细分市场是独角兽诞生的营销关键
- Linux 上 GDM 登录界面如何适应高分屏
- C语言 · 交换Easy
- 类似Tinder APP的配对逻辑
- 【转】HashMap和HashSet的区别