VC++ MFC中OnDraw 遇到的问题

[复制链接]
查看11 | 回复1 | 2008-8-17 13:27:28 | 显示全部楼层 |阅读模式
各位大侠,你们好!
我现在遇到这么一个问题,我在OnDraw函数中已经加入了我的输出文本,
部分代码如下:
CFont font;
font.CreatePointFont(100,"宋体");
CFont *pOldfont;
pOldfont=pDC->SelectObject(&font);

CString strtemp0;
CString strtemp1;
strtemp0="我自己的";
switch(m_pation)//m_pation为我进行判断的变量
{
case 0:
strtemp1="文本";
break;
case 1:
strtemp1="图像";
default:
break;

}

pDC->TextOut(0,0,strtemp0+strtemp1);

pDC->SelectObject(&pOldfont);
我已经定义了OnDraw的函数的触发条件,就是当我完成对话框参数设置后,调用Ivalidate()函数来触发OnDraw重画,而现在当我没有完成对话框参数前,VIEW视图中已经有了“我自己的”这四个字,也就是刚刚打开程序的时候就已经有了"我自己的"这四个字,我知道这四个字是在程序创建的过程中已经调用了我加的变量strtemp0了,而strtemp1这个值只有在我对话框设置后才会有值,现在的问题就是我希望在我完成参数之前,VIEW视图中不显示”我自己的“这四个字,只有当我在完成参数设置之后才显示,如何实现这个功能啊!帮帮小虾我吧!
问题已经解决了,我是在调用Invalidate()这个函数之前,将常量和变量加起来付给一个用于在OnDraw()的变量,而这个变量在OnDraw在初始化的时候为NULL,则VIEW中不显示任何文字,直到我完成所有参数设置,再触发Invalidate()迫使OnDraw重画,o(∩_∩)o...哈哈,这是我刚在发了提问后,突然逆向思维想起的。其实这个问题很简单的,希望大家发现问题的时候多动动脑子,我就是脑子一时进入了死胡同,所以才走了半天弯路。还有就是,大家还有别的解决办法的就直接后面跟帖,反正分已经在那了,过得去就给分!

回复

使用道具 举报

千问 | 2008-8-17 13:27:28 | 显示全部楼层
你C++很厉害么?~我没学过C++,可是网络三级要考上机,,怎么办啊?完全不懂。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行