zoukankan      html  css  js  c++  java
  • win32: 查询滚动条相关信息的注意事项

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

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

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

    if(si.nPage > 0)

    {

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

    }

    else

    {

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

    }

    但测试的时候发现,当没有显示滚动条的时候,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 ",nMin);
    printf("nMax:%d ",nMax);

    输出结果:

    nMin:0
    nMax:0

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

    2013-08-29

  • 相关阅读:
    #与javascript:void(0)的区别
    单选框、复选框、下拉列表
    数据类型后的“?”
    c#中日期的处理
    日期控件html
    javascript获取后台传来的json
    Hashtable语法简介
    Hashtable(哈希表)
    Dictionary 字典
    远程SQL Server连接不上
  • 原文地址:https://www.cnblogs.com/personnel/p/4584909.html
Copyright © 2011-2022 走看看