我的应用程序基于单文档,我把标题栏和菜单工具栏、状态栏都删除了,用分裂视图模拟各视图,子视图是基于CFormView和CListView,现在遇到问题了,我在客户区模拟的标题栏也画好了,如何实现在自绘的标题栏内移动整个框架呢,比如:
|----|-------------------------|
| 1 | 2 |
|——|-------------------------|
| | |
| 3 | 4 |
|------------------------------
我想点击视图1或2就能移动整个框架(包括所有视图),现在只能通过:
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
实现单个视图的移动(仿造标题栏移动信息,在OnNcHitTest响应),此外框架的大小的变化是不是就是处理每个视图的OnSize消息呢?请高手指教!
|----|-------------------------|
| 1 | 2 |
|——|-------------------------|
| | |
| 3 | 4 |
|------------------------------
我想点击视图1或2就能移动整个框架(包括所有视图),现在只能通过:
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
实现单个视图的移动(仿造标题栏移动信息,在OnNcHitTest响应),此外框架的大小的变化是不是就是处理每个视图的OnSize消息呢?请高手指教!
每个子窗口的变化就是其相应的OnSize
这个你可以下断点看一下
上面是链接,3楼大侠帮忙看下?
问题的解释:
基于对话框的客户区模拟标题栏移动应用程序框架示例很多,但是不适用于基于文档视图结构的程序,所以上述在CMainFrame中实现OnNcHitTest也是不可取的,因为客户区的按键消息都被CView处理,这与基于对话框程序是不一样的;
问题的解决:
同样处理按键按下消息,在鼠标移动的消息中用GetWindowRect完成视图相对框架的坐标的获取,然后再利用鼠标按下时传递的视图点坐标,使用MoveWindow函数完成主框架的移动!
当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖访问我的blog
http://blog.csdn.net/muzizongheng