一个诡异的VC++控件问题

我的程序界面中有几个listctrl控件,由于窗口要显示的内容比较多,所以窗口刚被显示的时候处于下端和右端的listctrl看不全,这时候向下拖动窗口垂直方向的滚动条,就... 我的程序界面中有几个listctrl控件,由于窗口要显示的内容比较多,所以窗口刚被显示的时候处于下端和右端的listctrl看不全,这时候向下拖动窗口垂直方向的滚动条,就可以看见刚才无法显示完全的两个listctrl控件的水平方向的滚动条,但是这时候尝试去拖动他们,发现没有任何反应。这时候如果拖动一下窗口在水平方向的滚动条,再去拖控件的刚才无法拖动的水平方向滚动条,发现就可以了。这时候如果再拖动窗口的垂直放向滚动条,则控件的水平滚动条又不能动了。概括一下也就是这种情况,如果窗口初始化显示的时候看不到该控件的滚动条,而且在尝试拖动该滚动条之前没有先拖一下窗口的水平方向滚动条,那么该控件的水平方向滚动条无法被拖动。在该滚动条可以拖动之后如果有拖动了窗口的垂直方向滚动条,则控件的水平滚动条又不能动了。
ps:设置断点看了一下,在这种情况下,控件类的 OnHScroll()没有被调用,调用的是控件类的鼠标左键单击事件的处理函数。而且我看了一下在这两种情况下的单击位置的坐标,坐标是没有问题的,可是为什么那种情况下命名点在了滚动条上却处理为鼠标左键的单击事件呢?垂直方向的滚动条在拖动了窗口的水平滚动条后,也是没法动的。和上面说的情况类似。
请高手帮忙,谢谢了哦!
感谢大家回帖!
To 二楼:设计不可能改了,我只是负责给软件增加功能,界面是原来就定下来的,这个问题是遗留下来的问题。
To 三楼:我去试一下你的建议,不过这个程序不是基于对话框的,是文档视图结构的,ListCtrl是加在View上的,与对话框无关哦。
展开
 我来答
百度网友5a16a12
2006-10-26 · TA获得超过517个赞
知道小有建树答主
回答量:418
采纳率:0%
帮助的人:470万
展开全部
这个问题的确诡异,我还没碰到过这种问题。
我想是这么回事,拖动对话框的VScroll时,没有刷新页面,所以当拖动了VScroll使得原来看不到的控件被显示出来时,对话框错误地认为它还没被显示。
你可以重载对话框的VScroll函数,增加一句刷新页面的操作:Invalidate()试试。
此外,既然是基于对话框的程序,面板就要尽可能小,尽量不要使用ScrollBar,如果要显示的东西的确很多,可以单独放到一个对话框中,需要查看的时候再把这个对话框显示出来。
Lcisware
2006-10-26 · TA获得超过619个赞
知道小有建树答主
回答量:846
采纳率:50%
帮助的人:343万
展开全部
诡异!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Fixend
2006-10-26 · TA获得超过1978个赞
知道小有建树答主
回答量:710
采纳率:0%
帮助的人:1045万
展开全部
的确诡异,但通常是不合理的设计造成的,这时候你应该检讨一下自己的设计。
如:把部分放到子窗口中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式