我想要得到的是当前可见的范围的尺寸(包括滚动条占有的部分),如下图:
如何获取图中的Width、Height值?
我用窗口的GetClientRect得到的是滚动条的最大范围值,而不是当前可见的范围的尺寸,请高手指点。
如何获取图中的Width、Height值?
我用窗口的GetClientRect得到的是滚动条的最大范围值,而不是当前可见的范围的尺寸,请高手指点。
解决方案 »
- 模式对话框的PropertySheet上控件重叠及Wizard按钮有时Crash问题
- 静态成员数据丢失. 实在不知道怎么回事了.都弄两天了.
- c++7.0中播放声音的问题
- 寻找兼职,本人熟悉VC应用程序开发,WINCE的应用程序开发(使用EVC),包括PPC和smartphone,熟悉WINCE的驱动开发。
- 怎样去掉分割窗口的分割条?
- 数据流图问题:PLMM的问
- 谁能推荐几本用vc写组件的基本的书?
- 怪事,CreateProcess就是不能成功,大伙帮我看看。
- DCOM问题
- 在Windows下有什么办法得到微秒级的中断?VC好象只支持到毫秒级...
- 代码有错吗?暂停键可以暂停一下,但是继续时就很快将时间片用完了
- vector<结构体>中erase的问题,急!!
GetClientRect得到的是滚动条的最大范围值,而不是当前可见的范围的尺寸
GetScrollInfo() ??
图太小了~
{
SCROLLINFO scrollinfo;
GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); int nScrollSize = 0;
switch (nSBCode)
{
case SB_LINEUP:
scrollinfo.nPos -= 1;
if (scrollinfo.nPos<scrollinfo.nMin)
{
scrollinfo.nPos = scrollinfo.nMin;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,10);
nScrollSize = 10;
break;
case SB_LINEDOWN:
scrollinfo.nPos += 1;
if (scrollinfo.nPos>scrollinfo.nMax)
{
scrollinfo.nPos = scrollinfo.nMax;
break;
}
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,-10);
nScrollSize = -10;
break;
case SB_THUMBTRACK:
ScrollWindow(0,(scrollinfo.nPos-nPos)*10);
nScrollSize = (scrollinfo.nPos-nPos)*10;
scrollinfo.nPos = nPos;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
SetScrollSizes(MM_TEXT , CSize(2,2));//去掉滚动条
GetClientRect(&rect);//当前的客户区可视范围
再把client rect下的(0,0)用ClientToScreen转化成屏幕坐标。
以上两值想减即可。