MDI程序.主框架和子窗口都是FormView来的。子窗口固定大小。如何给主框架添加滚动条

时间:2022-09-12 11:21:22
MDI程序.主框架和子窗口都是FormView来的。子窗口固定大小。如何给主框架添加滚动条?

子窗口禁止了最大化。当移动子窗口超出主框架边缘时,主框架如何出现滚动条?

12 个解决方案

#1


一般都是在view里加入滚动条。

#2


没看太懂...

#3


确实是像一楼的所说,都是在View中加滚动条的

#4


没法发图片。

#5


顶一下

#6


楼主想在主框架添加滚动条的话,必须在主框架里面自己手写添加!
这种做法比较少见,起码我没有看到过,更没有做过!
不过,添加滚动条的方法都差不多,定义一个滚动条,然后创建!然后添加对应的响应函数等!

#7


有点象access 2003的界面,当打开的表超出框架时出现滚动条。
哎,没法贴图呀。

#8


要不你主框架就不用CFormView来加载,而用CScrollView这个基类,都差不多。
只不过CScrollView里面有现成的滚动,好判断也好实现。。。。。

#9


同意楼上的。

#10


主框架是FormView??不是CMDIFrameWnd??
在主框架创建中:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;

cs.style |= WS_HSCROLL | WS_VSCROLL; //加入滚动条

return TRUE;
}

如果要更智能滚动条自动伸缩 则在子框架中:
void CChildFrame::OnMoving(UINT fwSide, LPRECT pRect)
{
CMDIChildWnd::OnMoving(fwSide, pRect);

GetParent()->SendMessage(WM_NCPAINT, TRUE, NULL);//或使用WM_NCCALCSIZE消息
}

#11


10楼的办法可行。
第二个,OnMoving没找到,没法试。
但第一个方法,当把一个子窗口拖到右下角(这个子窗口是固定大小的;上面有个有个edit,拖动时焦点在这个edit上),然后通过滚动条返回右上角(此时子窗口看不见了),发现这样一个现象,有时点击其他子窗口没有反应,焦点也不能到这个子窗口上。
谢谢!

#12


又试了一下,点击子窗口焦点就过来了。谢谢结贴。

#1


一般都是在view里加入滚动条。

#2


没看太懂...

#3


确实是像一楼的所说,都是在View中加滚动条的

#4


没法发图片。

#5


顶一下

#6


楼主想在主框架添加滚动条的话,必须在主框架里面自己手写添加!
这种做法比较少见,起码我没有看到过,更没有做过!
不过,添加滚动条的方法都差不多,定义一个滚动条,然后创建!然后添加对应的响应函数等!

#7


有点象access 2003的界面,当打开的表超出框架时出现滚动条。
哎,没法贴图呀。

#8


要不你主框架就不用CFormView来加载,而用CScrollView这个基类,都差不多。
只不过CScrollView里面有现成的滚动,好判断也好实现。。。。。

#9


同意楼上的。

#10


主框架是FormView??不是CMDIFrameWnd??
在主框架创建中:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;

cs.style |= WS_HSCROLL | WS_VSCROLL; //加入滚动条

return TRUE;
}

如果要更智能滚动条自动伸缩 则在子框架中:
void CChildFrame::OnMoving(UINT fwSide, LPRECT pRect)
{
CMDIChildWnd::OnMoving(fwSide, pRect);

GetParent()->SendMessage(WM_NCPAINT, TRUE, NULL);//或使用WM_NCCALCSIZE消息
}

#11


10楼的办法可行。
第二个,OnMoving没找到,没法试。
但第一个方法,当把一个子窗口拖到右下角(这个子窗口是固定大小的;上面有个有个edit,拖动时焦点在这个edit上),然后通过滚动条返回右上角(此时子窗口看不见了),发现这样一个现象,有时点击其他子窗口没有反应,焦点也不能到这个子窗口上。
谢谢!

#12


又试了一下,点击子窗口焦点就过来了。谢谢结贴。