网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月15日漏签0天
vb吧 关注:156,149贴子:1,166,081
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 8回复贴,共1页
<<返回vb吧
>0< 加载中...

【分享】Vista/Win7/Win8下应用ListView和TreeView的系统风格

  • 只看楼主
  • 收藏

  • 回复
  • astrophysics
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
众所周知,Vista/Win7/Win8下系统的ListView和TreeView的Item并不是传统的蓝底白字的,而是具有自己特有的风格(不知道我说啥的话可以对比一下下面的效果图)。不过用manifest并不能实现这个效果,那么这个效果在VB中应该怎么实现呢?可能有些同学已经知道怎么设置这种系统风格了,我从一些C++代码中发现了一种实现方法,其实很简单的,下面分享一下:
*先申明一下API
Private Declare Function SetWindowTheme Lib "uxtheme.dll" (ByVal hWnd As Long, ByVal pszSubAppName As String, ByVal pszSubIdList As String) As Long
*实现代码
Call SetWindowTheme(m_hListView, StrConv("explorer" & Chr(0), vbUnicode), vbNullString)
应用这个代码前提要有manifest文件或者将manifest写入到资源文件中,这里就不详细说了。另外,应用系统样式后很可能会有重绘残影或者闪烁的问题,建议为控件加上 LVS_EX_DOUBLEBUFFER(ListView)和TVS_EX_DOUBLEBUFFER(TreeView)风格来强制使用双缓冲进行重绘,这样就不就闪烁或者有残影叠加了。
Vista/Win7下的效果:

Win8下的效果:

仅有manifest而不设置SetWindowTheme的默认效果:


  • Pen血La
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
good


2025-05-15 13:36:13
广告
  • oshi001
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何制作manifest文件,如何调用该文件


  • 李静乙
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶 收藏


  • comihuang
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我也郁闷,6.0控件如何让用manifest来实现win7样式


  • astrophysics
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我发现很多小伙伴们都误会了这个帖子的原意了,这个帖子不是说如何实现系统风格,要实现系统风格其实很简单,用manifest或者写入资源文件都可以;之所以开这个帖子,是因为使用了传统的系统风格文件后,ListView和TreeView的新重绘特性并不能发挥出来。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示