我在对话框内的一个EDIT BOX内画图,在对话框的OnPaint函数里有下面画图代码:
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
// 指针
CDC* pDC = pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow(); CRect rWnd;
pWnd->GetClientRect(&rWnd); CString strText;
RECT rText; strText = _T("Hello");
for (int i =0;i<100;i++)
{
rText.top = i*20;
rText.bottom = rText.top+20;
rText.left = 10;
rText.right = 50;
pDC->DrawText(strText,&rText,DT_LEFT);
}
效果图如下:
但是现在我要达到这样一个效果,所有的画图都不能超出EDIT BOX范围而跑到对话框上去,就是假如到了EDIT BOX底部,EDIT BOX自动加一个垂直滚动条,然后可以继续画.实际上就是如何在EDIT BOX添加一个垂直滚动条使得画图范围始终在EDIT BOX内.
CWnd* pWnd = GetDlgItem(IDC_EDIT1);
// 指针
CDC* pDC = pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow(); CRect rWnd;
pWnd->GetClientRect(&rWnd); CString strText;
RECT rText; strText = _T("Hello");
for (int i =0;i<100;i++)
{
rText.top = i*20;
rText.bottom = rText.top+20;
rText.left = 10;
rText.right = 50;
pDC->DrawText(strText,&rText,DT_LEFT);
}
效果图如下:
但是现在我要达到这样一个效果,所有的画图都不能超出EDIT BOX范围而跑到对话框上去,就是假如到了EDIT BOX底部,EDIT BOX自动加一个垂直滚动条,然后可以继续画.实际上就是如何在EDIT BOX添加一个垂直滚动条使得画图范围始终在EDIT BOX内.
换一个Scroll View之类的东东,
大侠,那怎么把Scroll View放到对话框上呢?
CRuntimeClass* rc = RUNTIME_CLASS(CMyScrollView);
CMyScrollView* view = (CMyScrollView*)rc->CreateObject();
view->Create(NULL, NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, CRect(0,0,200,200), this, 0);
view->SetScrollSizes(MM_TEXT, CSize(400,400));
参数根据需要修改,然后在OnDraw函数中绘制界面。