可以在对话框中加入VIEW了,在OnInitDialog()函数中写入以下代码://在dialog中嵌入view, CPicViewEx继承自CScrollView
CWnd* pPosWnd = GetDlgItem(IDC_PIC);
CRect rect;
pPosWnd->GetWindowRect(&rect);
CRect rectView = rect;
ScreenToClient(&rect);
m_pFrame = new CFrameWnd(); //对话框内视图的父窗口
m_pFrame->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this);
//m_pFrame->ScreenToClient(&rectView);
ASSERT(m_pFrame); m_pView = (CPicViewEx*)RUNTIME_CLASS(CPicViewEx)->CreateObject();
m_pView->Create(NULL, NULL,WS_CHILD | WS_VISIBLE, rect, m_pFrame, IDC_PIC, NULL);
m_pView->OnInitialUpdate();但是在VIEW中画图的位置不对,上面空出来一大截。void CPicViewEx::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CRect rc;
GetWindowRect(&rc);
pDC->FillSolidRect(&rc, RGB(0,255,0));
}
//重载擦除背景,效果也是上面空出来一部分白色
BOOL CPicViewEx::OnEraseBkgnd(CDC* pDC)
{
CRect rc;
GetClientRect(&rc); CBrush m_BrushBackGround;
COLORREF dlgbkColor = ::GetSysColor(COLOR_3DFACE);
m_BrushBackGround.CreateSolidBrush(dlgbkColor);
pDC->FillRect(&rc, &m_BrushBackGround);
m_BrushBackGround.DeleteObject();
return TRUE;
//return CScrollView::OnEraseBkgnd(pDC);
}
而且图像放大后并没有滚动条出现。本意就是加入VIEW可以滚动显示,唉……
CWnd* pPosWnd = GetDlgItem(IDC_PIC);
CRect rect;
pPosWnd->GetWindowRect(&rect);
CRect rectView = rect;
ScreenToClient(&rect);
m_pFrame = new CFrameWnd(); //对话框内视图的父窗口
m_pFrame->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this);
//m_pFrame->ScreenToClient(&rectView);
ASSERT(m_pFrame); m_pView = (CPicViewEx*)RUNTIME_CLASS(CPicViewEx)->CreateObject();
m_pView->Create(NULL, NULL,WS_CHILD | WS_VISIBLE, rect, m_pFrame, IDC_PIC, NULL);
m_pView->OnInitialUpdate();但是在VIEW中画图的位置不对,上面空出来一大截。void CPicViewEx::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
CRect rc;
GetWindowRect(&rc);
pDC->FillSolidRect(&rc, RGB(0,255,0));
}
//重载擦除背景,效果也是上面空出来一部分白色
BOOL CPicViewEx::OnEraseBkgnd(CDC* pDC)
{
CRect rc;
GetClientRect(&rc); CBrush m_BrushBackGround;
COLORREF dlgbkColor = ::GetSysColor(COLOR_3DFACE);
m_BrushBackGround.CreateSolidBrush(dlgbkColor);
pDC->FillRect(&rc, &m_BrushBackGround);
m_BrushBackGround.DeleteObject();
return TRUE;
//return CScrollView::OnEraseBkgnd(pDC);
}
而且图像放大后并没有滚动条出现。本意就是加入VIEW可以滚动显示,唉……
解决方案 »
- 如果更改SDI中CView的窗口底色?
- 恳请高手们不吝赐教,帮助我们这些c/c++初学者能跟上你们的步伐。
- 关于WM_COPYDATA的问题
- 请问如何在vc编译器环境里设置。。。(写不下,请进来,谢谢!)
- @@对nat的工作原理有点不明白,请指点一下~~@@
- 请问怎么将一个2维数组保存到文件?怎么读取这个文件来初始化这个2维数组?
- 如何改变ClistCtrl控件标题和记录的字体大小
- 怎样重新设计一个CEDIT类
- 一个简单的问题,但我真的不知道! & : (
- 关于字符串的长度?
- 【小调查】自己在公司的人际关系满意度如何?公司人事,领导关系都和谐吗?
- (急问!!!)MFC里面向控件里面输出字符串,为什么出现的是乱码?(在线等)
直接new view好了