MFC带滚动条的窗口上如何正确的移动位置.

加菲猫喝汽水 2013-12-10 03:44:56
不要想得很简单.我知道MoveWindow(); SetWindowPos();这俩个函数.
但是我的问题就很疼了.
如题我的带滚动条的窗口作为父窗口(叫A窗口吧),需要移动A窗口里的子窗口的位置. 但是用MoveWindow和SetWindowPos呢, 比如说A窗口里有32个子窗口, 删掉中间位置的一个子窗口,那么就需要把删掉的窗口后边的窗口往前移动是吧,由于当前父窗口中滚动条处于中间位置,我MoveWindow到0,0位置, 竟然不是在A窗口真正的0,0位置,二是A窗口当前显示出来的不被遮盖区域的0,0位置.我想要的效果是把他移动到A窗口的真正的0,0位置,而不是不被遮盖显示出来的区域的0,0位置.
大神,这个函数不能满足我的需要吗? 那别的软件也应该有用到类似的功能的啊,别人怎么做的?

这里先谢谢大家,请大家不吝赐教!
...全文
356 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
加菲猫喝汽水 2013-12-10
  • 打赏
  • 举报
回复
谢谢,你说的很对,减去滑块 移动位置就好了
引用 1 楼 hurryboylqs 的回复:
你要获取当前滚动条滑块的位置,逻辑上,父窗口的原点在 -GetScrollPos(SB_HORZ),-GetScrollPos(SB_VERT)
加菲猫好胖啊 2013-12-10
  • 打赏
  • 举报
回复
引用 1 楼 hurryboylqs 的回复:
你要获取当前滚动条滑块的位置,逻辑上,父窗口的原点在 -GetScrollPos(SB_HORZ),-GetScrollPos(SB_VERT)
我是楼主, 换号了刚刚chrome浏览器崩了改IE用这个账号回复你哈. 感觉你说的很有道理,应该是这样. 不过呢,我现在调的(*it)->MoveWindow(0,0,271,141,TRUE); 如果x,y如果减去GetScrollPos(SB_VERT)的话会是复数,那么可以MoveWindow(-100,-120,271,141,TRUE) 吗?
hurryboylqs 2013-12-10
  • 打赏
  • 举报
回复
你要获取当前滚动条滑块的位置,逻辑上,父窗口的原点在 -GetScrollPos(SB_HORZ),-GetScrollPos(SB_VERT)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧