Visual c++ CView控件布局的就地编辑
我有一个Visual c++ CView控件布局的就地编辑,visual-c++,mfc,cview,Visual C++,Mfc,Cview,我有一个CView,它充当垂直堆叠的几个Ctrl的占位符,以便占据所有可用空间。我想做的是用鼠标抓住一个水平边界,然后上下拖动它来调整Ctrl高度 问题在于CView的子Ctrl键截取鼠标消息,而不是CView父窗口(WM_LBUTTONDOWN,WM_MOUSEMOVE等)。Ctrl还处理这些消息以满足无关的编辑需求 是否有人能够提供建议或提供参考,以解决此规模/编辑要求的可能解决方案。这种情况与VisualStudio中的资源编辑器类似。只有我希望在实时环境中进行编辑。我认为这很容易做到,如
CView
,它充当垂直堆叠的几个Ctrl的占位符,以便占据所有可用空间。我想做的是用鼠标抓住一个水平边界,然后上下拖动它来调整Ctrl高度
问题在于CView
的子Ctrl键截取鼠标消息,而不是CView
父窗口(WM_LBUTTONDOWN
,WM_MOUSEMOVE
等)。Ctrl还处理这些消息以满足无关的编辑需求
是否有人能够提供建议或提供参考,以解决此规模/编辑要求的可能解决方案。这种情况与VisualStudio中的资源编辑器类似。只有我希望在实时环境中进行编辑。我认为这很容易做到,如下所示:
- 在子控件之间留一个小间隙(例如2或3像素)。这可能是在相同的颜色,或略有不同的阴影绘制
- 将主视图的光标设置为
IDC\u SIZENS
- 在主视图(向下,移动,…)中处理鼠标消息(当鼠标位于该间隙上方时)
- “拖动”时,调整子控件的大小
如果真的没有留下一个小的间隙,那么您就必须捕获CView中的所有鼠标消息,并检查它们是否在边界上。如果没有,请将它们转发(或默认)到鼠标光标下方的子窗口。指向图片的链接可能会有所帮助。