VC++ MFC中OnDraw 遇到的问题
各位大侠,你们好!我现在遇到这么一个问题,我在OnDraw函数中已经加入了我的输出文本,部分代码如下:CFontfont;font.CreatePointFont(100...
各位大侠,你们好!
我现在遇到这么一个问题,我在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...哈哈,这是我刚在发了提问后,突然逆向思维想起的。其实这个问题很简单的,希望大家发现问题的时候多动动脑子,我就是脑子一时进入了死胡同,所以才走了半天弯路。还有就是,大家还有别的解决办法的就直接后面跟帖,反正分已经在那了,过得去就给分! 展开
我现在遇到这么一个问题,我在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...哈哈,这是我刚在发了提问后,突然逆向思维想起的。其实这个问题很简单的,希望大家发现问题的时候多动动脑子,我就是脑子一时进入了死胡同,所以才走了半天弯路。还有就是,大家还有别的解决办法的就直接后面跟帖,反正分已经在那了,过得去就给分! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询