单文档 客户区 窗口改变 如何保持内容

用函数在客户区输出文字或者绘图,窗口大小改变后就全没了,怎么相应的改变?... 用函数在客户区输出文字或者绘图,窗口大小改变后就全没了,怎么相应的改变? 展开
 我来答
ldy0628
2013-12-22 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:70.3万
展开全部
你的绘图函数要在OnDraw里面调用。
追问
能不能具体一点  用到的函数 在哪里写?
追答
你如果在DrawMyText函数里面绘制了文字,在一个按钮里面调用DrawMyText,比如下面的OnEditUndo,在你点击按钮的时候会绘制一次,但是在窗体改变时要进行重绘,窗体重绘会把窗体背景先全部擦除,然后调用OnPaint函数(OnDraw函数在OnPaint里面被调用),那么DrawMyText没有被调用,就不会显示文字。而窗体重绘每次都会调用OnDraw函数,因此把DrawMyText放在OnDraw里面。
void CTestView::DrawMyText()
{
CString str = _T("Hello");
GetDC()->TextOut(10, 10, str);
}
//点击按钮,
void CTestView::OnEditUndo()
{
DrawMyText();    //窗体重绘就消失了
}

// CTestView 绘制
//该函数在窗体重绘的时候调用
void CTestView::OnDraw(CDC* /*pDC*/)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

DrawMyText();    //正确的调用
}

 够不够详细了,采纳吧,哈哈。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式