Scrollbar为什么出不来?共150分!!
本来是想创建一个比Frame大的可以Scroll的视图,但如果不是在MainFrame而是在自己创建的一个FrameWnd中调用就会出问题。如何是好?
代码:
void CMainFrame::OnTest()
{ CTestWnd* pTest = new CTestWnd;
pTest->Create(NULL,NULL);
pTest->ShowWindow(SW_SHOWNORMAL); }
.....
class CTestView:CScrollView;
...
CTestView m_TestView;
...
int CTestWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{ if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_TestView.Create(NULL,NULL, AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 1, 1), this, AFX_IDW_PANE_FIRST, NULL))
return -1;
return 0; }
......
void CTestView::OnInitialUpdate()
{ CScrollView::OnInitialUpdate();
SetScrollSizes(MM_TEXT, CSize(2000,2000)); }
可是好像没什么用,滚动条还是出不来。为何???
如果是在MainFrame的OnCreate中直接创建一个CScrollView,如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{ if (!m_TestView.Create(NULL,NULL, AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 1, 1), this, AFX_IDW_PANE_FIRST, NULL))
return -1;
return 0; }(其它不变)
就是可以的。
经我调试,第一种方式根本没调用CTestView的OnInitialUpdate.
高手一定帮忙,周一要交差,又要加班了 :(
剩余的分在http://www.csdn.net/expert/topic/919/919723.xml?temp=.6657373
如果不够,还可再加。