窗口竖直边框扩大到多少像素时窗口竖直滚动条刚好消失, 如何精确计算(所剩积分很少了, 请大家鼎力相助) ???(24分)

  • 主题发起人 主题发起人 happymanfreeman
  • 开始时间 开始时间
H

happymanfreeman

Unregistered / Unconfirmed
GUEST, unregistred user!
各位朋友: 国庆节好!<br> &nbsp; &nbsp;<br> &nbsp; 目前遇到一个问题, 对于桌面上一个有竖直滚动条的窗口(先讨论竖直滚动条), 我们慢慢把窗口拉大, 窗口拉大到一定尺寸时, 竖直滚动条刚好消失, 那么此时窗口竖直边框尺寸为多少像素 ?? &nbsp;如何精确计算 ?? 原来窗口, 竖直滚动条所在的子窗口及竖直滚动条情况在桌面上均已确定. <br> &nbsp;<br> &nbsp; 我查阅了&lt;&lt;windows程序设计&gt;&gt;一书及MSDN, 其中说到 <br><br> &nbsp; GetScrollInfo( HWND hwnd, int fnBar, LPSCROLLINFO lpsi );<br><br> &nbsp; typedef struct tagSCROLLINFO { <br> &nbsp; &nbsp;UINT cbSize; <br> &nbsp; &nbsp;UINT fMask; <br> &nbsp; &nbsp;int &nbsp;nMin; <br> &nbsp; &nbsp;int &nbsp;nMax; <br> &nbsp; &nbsp;UINT nPage; <br> &nbsp; &nbsp;int &nbsp;nPos; <br> &nbsp; &nbsp;int &nbsp;nTrackPos; <br>} &nbsp; SCROLLINFO, *LPSCROLLINFO; <br>typedef SCROLLINFO CONST *LPCSCROLLINFO <br> &nbsp; &nbsp;其中 nMin; nMax; nPage; 均不是以像素为单位.<br><br> &nbsp; &nbsp;&lt;&lt;windows程序设计&gt;&gt;一书给出的也是约等号:<br> <br> &nbsp; 滚动框大小 &nbsp; &nbsp; &nbsp;页面大小 &nbsp; &nbsp; &nbsp;显示的文档数量<br> &nbsp;------------ ≈ ---------- ≈ ----------------<br> &nbsp; &nbsp;滚动长度 &nbsp; &nbsp; &nbsp; &nbsp; 范围 &nbsp; &nbsp; &nbsp; &nbsp; 文档的总大小 <br><br> &nbsp; 以上问题如何&quot;精确&quot;计算啊 ??
 
这个多试几遍就知道了,方法如下,<br>在窗口底部放一控件,比如panel,然后在属性编辑器里逐渐加大panel的heigth,看看什么时候出现滚动条。横向同样试验即可
 
bmsr; 你好!<br> &nbsp; 你不能改变我问题啊!
 
思维方式就是这样,办法可以有很多晒,找到这些尺寸之间的关系就可以了。
 
bmsr: <br> &nbsp;你能否说讲具体些, 如何找到这些尺寸之间的&quot;精确&quot;关系 ?? &nbsp;要求&quot;精确&quot; !!<br><br> &nbsp;&lt;&lt;windows程序设计&gt;&gt;一书给出的也是&quot;约等号&quot;关系, 不是&quot;精确&quot;关系(难道这是windows系统的设计缺陷?):<br> <br> &nbsp; 滚动框大小 &nbsp; &nbsp; &nbsp;页面大小 &nbsp; &nbsp; &nbsp;显示的文档数量<br> &nbsp;------------ ≈ ---------- ≈ ---------------- &nbsp;<br> &nbsp; &nbsp;滚动长度 &nbsp; &nbsp; &nbsp; &nbsp; 范围 &nbsp; &nbsp; &nbsp; &nbsp; 文档的总大小 <br>除了GetScrollInfo(HWND hwnd, int fnBar, LPSCROLLINFO lpsi)外, 有没有其它API ??
 
Control.Height * (nMax / nPage)
 
cis和岗位朋友: <br> &nbsp; Control.Height * (nMax / nPage) &nbsp;也就是利用我上面说明的公式, &nbsp; 是&quot;不精确&quot;的公式! &nbsp;我的要求是如何&quot;精确&quot;地计算!! &nbsp;请大家回答之前仔细阅读我的问题描述, 针对性地给出解决方案!!
 
后退
顶部