本代码可以在CFormView中,根据事先画好的控件位置创建CScrollView
也可以在CDialog中创建CScrollView、CFormView等
注:
若以下代码放在CMainRightView::OnCreate(LPCREATESTRUCT lpCreateStruct)内,则GetDlgItem()函数将调用失败,因为此时控件都还未被创建!
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
注:如果需要在CDialog中创建CScrollView、CFormView,则需要overload、override这些View中以下的4个方法,否则会出ASSERT错误
afx_msg
int
OnMouseActivate(CWnd
*
pDesktopWnd, UINT nHitTest, UINT message);
afx_msg void OnDestroy();
virtual void PostNcDestroy();
virtual void OnActivateFrame(UINT nState, CFrameWnd * pDeactivateFrame);
afx_msg void OnDestroy();
virtual void PostNcDestroy();
virtual void OnActivateFrame(UINT nState, CFrameWnd * pDeactivateFrame);
int
CFormViewPrint::OnMouseActivate(CWnd
*
pDesktopWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, message);
}
void CFormViewPrint::OnDestroy()
{
CWnd::OnDestroy();
// TODO: Add your message handler code here
}
void CFormViewPrint::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CWnd::PostNcDestroy();
}
void CFormViewPrint::OnActivateFrame(UINT nState, CFrameWnd * pDeactivateFrame)
{
// TODO: Add your specialized code here and/or call the base class
CWnd::OnActivateFrame(nState, pDeactivateFrame);
}
{
// TODO: Add your message handler code here and/or call default
return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, message);
}
void CFormViewPrint::OnDestroy()
{
CWnd::OnDestroy();
// TODO: Add your message handler code here
}
void CFormViewPrint::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CWnd::PostNcDestroy();
}
void CFormViewPrint::OnActivateFrame(UINT nState, CFrameWnd * pDeactivateFrame)
{
// TODO: Add your specialized code here and/or call the base class
CWnd::OnActivateFrame(nState, pDeactivateFrame);
}
原因可参考
View和Control的区别(如何在对话框上使用CView类)
http://www.seeitco.com/doc/Html/Visual%20C++/205707715.html