今天打算判断一个窗口是否出现垂直滚动条,我的代码:

SCROLLINFO si; //滚动条信息结构体
                    si.cbSize = sizeof(SCROLLINFO); //必须
                    si.fMask = SIF_ALL;
                    GetScrollInfo(hwnd_frame_preview, SB_VERT, &si);

printf("si.nPage:%d\n", si.nPage);
                    printf("si.nPos:%d\n", si.nPos);
                    printf("si.nMin:%d\n", si.nMin);
                    printf("si.nMax:%d\n", si.nMax);

if(si.nPage > 0)

{

printf("有垂直滚动条\n");

}

else

{

printf("没有垂直滚动条\n");

}

但测试的时候发现,当没有显示滚动条的时候,si.nPage, si.nPos, si.nMin, si.nMax 返回的值都很奇怪,并不是我想像中的 0

输出结果:

si.nPage:2010220586
si.nPos:0
si.nMin:2010220634
si.nMax:2290948

si.nPage:2010220586
si.nPos:0
si.nMin:2010220634
si.nMax:2290948

从这样的输出结果看,如果使用 si.nPage 来判断有没有垂直滚动条已不准确了。

后来试了一下 GetScrollRange()

int nMin,nMax;
GetScrollRange(hwnd_frame_preview,SB_VERT,&nMin,&nMax);
printf("nMin:%d\n",nMin);
printf("nMax:%d\n",nMax);

输出结果:

nMin:0
nMax:0

看来,以后还是使用GetScrollRange()靠谱。

2013-08-29

win32: 查询滚动条相关信息的注意事项的更多相关文章

  1. 在linux中查询硬件相关信息

    1.查询cpu的相关 a.查询CPU的统计信息 使用命令:lscpu 得到的结果如下: Architecture: x86_64 CPU op-mode(s): -bit, -bit Byte Ord ...

  2. Linux下使用fstatfs/statfs查询系统相关信息

    Linux下使用fstatfs/statfs查询系统相关信息 1.   功能 #include < sys/statfs.h > int statfs(const char *path, ...

  3. Linux系统CPU相关信息查询

    Linux系统CPU相关信息查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.lscpu常用参数介绍 1>.查看帮助信息 [root@node105 ~]# lscpu ...

  4. 查询ubuntu系统版本相关信息

    查询ubuntu系统版本相关信息 sky@sky-virtual-machine:~$ cat /etc/issueUbuntu 12.04.5 LTS \n \l proc目录下记录的当前系统运行的 ...

  5. activiti7查询流程定义的相关信息

    package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...

  6. MSSQL·查询数据库中所有索引的相关信息

    阅文时长 | 0.45分钟 字数统计 | 784字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查询数据库中所有索引的相关信息』 编写人 | SCscHero 编写时间 ...

  7. Linux服务器相关信息查询

    链接:https://www.cnblogs.com/luoahong/articles/8781375.html 机器型号dmidecode | grep "Product Name&qu ...

  8. php http头设置相关信息

    HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...

  9. 使用C语言获取linux系统相关信息

    最近在写shell的时候,涉及到了获取环境变量参数和本地计算机相关信息,包括计算机设备名,用户名的信息,在这里简单总结一下.获取环境变量各项参数,可以直接使用getenv函数.man中关于getenv ...

随机推荐

  1. linux下rsync和tar增量备份梳理

    前面总结过一篇全量备份/增量备份/差异备份说明,下面介绍下linux下rsync和tar两种增量备份的操作记录: 1)rsync备份 rsync由于本身的特性,在第一次rsync备份后,以后每次都只是 ...

  2. 最小生成树模板题POJ - 1287-prim+kruskal

    POJ - 1287超级模板题 大概意思就是点的编号从1到N,会给你m条边,可能两个点之间有多条边这种情况,求最小生成树总长度? 这题就不解释了,总结就算,prim是类似dijkstra,从第一个点出 ...

  3. github个人作业

    信息学院本科生课程设计 题目                    文件加密和解密 课程名称 面向对象程序设计课程设计 课程编号 X031749 所在专业 计算机科学与技术 所在班级 计科高职13-3 ...

  4. debug网页时小问题The source attachment does not contain the source for the file

    第一次debug总是出现下图问题,提示我没加源码... The source attachment does not contain the source for the file ... 解决方法: ...

  5. Java基础实践一:for关键字的实现原理

    Java源码: /** * Demo.java * com.yuanchuangyun.libra.web * * * ver date author * ────────────────────── ...

  6. intval()和int()

    int intval ( mixed $var [, int $base ] )    通过使用特定的进制转换(默认是十进制),参数base表示进制,只有当var是字符串时,base才会有意义,表示按 ...

  7. git常用命令及用法小计

    git init 初始化一个本地git仓库repository git status 查看状态 git add <file> 将工作区修改加到暂存区(stage) git commit - ...

  8. python系列-2 正则表达式资料

  9. ceph 搭建nginx负载3个对象网关

    nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid ...

  10. BZOJ4569 SCOI2016萌萌哒(倍增+并查集)

    一个显然的暴力是用并查集记录哪些位之间是相等的.但是这样需要连nm条边,而实际上至多只有n条边是有用的,冗余过多. 于是考虑优化.使用类似st表的东西,f[i][j]表示i~i+2^j-1与f[i][ ...