-
-
[求助]出现这样的情况是神马原因导致的呢?恳请进来指点迷津。。。
-
发表于:
2012-10-18 18:07
3416
-
[求助]出现这样的情况是神马原因导致的呢?恳请进来指点迷津。。。
问题描述:
创建了一个对话框(父亲对话框),大小为宽度723,高度445,在上面放了一系列的控件,假如放20个某控件,每个控件的高度是55,则高度为445的对话框满足不了要求(毕竟20*55=1100>445),需要借助滚动条来实现显示所有在对话框上的控件。
现在把滚动条的最大值(可滚动范围)设为了1200,si.nMax=1200;si.nPage=445;(父亲对话框的高度)用来滚动显示全部20个某控件,最后多出来的100(1200-20*55=100)用来存放一个子对话框(用黄色太做标记)(问题所在之处)。
问题出现:
如何在1100的位置处显示那个黄色子对话框呢?或者说如何实现这样的效果:滚动条拉到下面的时候能看到最下面的那个黄色子对话框呢?
实现1:
父亲对话框显示的时候创建那个黄色子对话框,直接这样操作
黄色对话框.MoveWindow(0,1100,xxx...)。。。
测试结果:当滚动条拉下去的时候看不到黄色子对话框,把1100改成1090,1095,1099都是可以看到那个黄色子对话框的,1100则看不到。
如图所示:
此为1090
此为1095
想知道问题出在什么地方了?还望看雪各位兄台指点一下,感激不尽。
实现2:
由于有滚动条消息,所以想到了在滚动条消息处理函数中进行判断,当滚动条被拖到底部时进行创建那个黄色子对话框,此时:
黄色对话框.MoveWindow(0,445,xxx....)....就好了,不需要1100了,相对位置变化了。。
测试结果:当滚动条拖到最下面的时候黄色对话框不出现,当点击滚动条下边滑块的时候可以出现黄色子对话框。。。。。。一句话,效果不够理想。。。
不知道看雪上是否有哪位兄台遇到过类似问题,是如何解决的呢?或者有神马比较好的方式来实现这样的效果吗?求方法。。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课